Google上的操作始终默认为模拟器上的加利福尼亚山景城

时间:2018-09-11 18:55:28

标签: dialogflow actions-on-google google-home

我正在尝试遵循GitHub上的以下示例,该示例说明使用Node JS SDK的权限如何工作:

https://github.com/actions-on-google/dialogflow-name-psychic-nodejs

我注意到一些奇怪的事情:

  1. 在网络模拟器上进行测试时,该位置始终默认为加州山景城。是因为Google总部位于那儿吗?

  2. 当我在Google Home mini上调用相同的操作时(我已登录到我的Google帐户)

    2.1我没有听到请求许可的原因。从日志中可以看到,调用了request_location_permission操作,但是未触发conv.ask API调用。

    下面的代码段:

    app.intent('request_location_permission', (conv) => {
      // If the request comes from a phone, we can't use coarse location.
      conv.data.requestedPermission =
        conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')
        ? 'DEVICE_PRECISE_LOCATION'
        : 'DEVICE_COARSE_LOCATION';
    
      if (!conv.user.storage.location) {
        console.log('**inside the if condition');
        return conv.ask(new Permission({
          context: responses.permissionReason,
          permissions: conv.data.requestedPermission,
        }));
      }
      showLocationOnScreen(conv);
    });
    

    2.2始终默认为拒绝权限(在handle_permission意图内)

以下是Google Home mini上的事件顺序:

User-> Talk to my test app
Google Home-> bla..bla bla
User-> location
Google Home-> I can't read your mind
App Quits. 

但是,可以预料的是,在我说“位置”后,Google Home应该请求位置许可,而是读出错误消息。

任何人都可以对此有所了解。

0 个答案:

没有答案