首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置DialogFlow会话的时区?

如何设置DialogFlow会话的时区?
EN

Stack Overflow用户
提问于 2018-04-17 16:30:02
回答 1查看 2.4K关注 0票数 5

当我在Sialogflow意图中使用“日期”实体时,我希望它能够根据特定的时区来解释today的日期。

该时区在会话之间可能会有所不同,因为我的web客户端知道用户的特定时区,并且可以在请求中或在第一次发起会话时传递这一点。

现在,对话框流只使用UTC,所以如果用户在加利福尼亚,UTC-7,在加利福尼亚是January 1st, 9pm,在UTC是4am on January 2nd,所以用户说today被解释为January 2nd,而不是想要的January 1st

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 16:34:04

根据文档,在发送查询时有一个timezone参数:

代码语言:javascript
复制
POST /query sample
HTTPCURL
curl \
https://api.dialogflow.com/v1/query?v=20150910 \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_CLIENT_ACCESS_TOKEN' \
-d '{
  "contexts": [
    "shop"
  ],
  "lang": "en",
  "query": "I need apples",
  "sessionId": "12345",
  "timezone": "America/New_York"
}'

因此,如果您知道用户的时区,您只需要在每个请求上发送它。

API V2

对于API V2代理,可以在queryParams.timeZone中发送时区。

代码语言:javascript
复制
const sessionClient = new dialogflow.SessionsClient({
    keyFilename: '/path/to/google.json'
});
const sessionPath = sessionClient.sessionPath('[PROJECT_ID]', '[SESSION_ID]');

const request = {
    session: sessionPath,
    queryInput: {
        text: {
            text: 'query',
            languageCode: 'en'
        }
    },
    queryParams: {
        timeZone: 'America/New_York'
    }
};

sessionClient.detectIntent(request)
   .then(res => console.log(res))
   .catch(err => console.error(err))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49883196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档