Действия в Google на симуляторе всегда по умолчанию: Маунтин-Вью, Калифорния

Я пытаюсь следовать приведенному ниже образцу, доступному на 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, но вызов API conv.ask не запускается.

    Фрагмент кода ниже:

    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.info('**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 должен запросить разрешение на определение местоположения, а вместо этого зачитает сообщение об ошибке.

Кто-нибудь может пролить свет на это.

Когда вы говорите, что вызывается обработчик запроса request_location_permission - это основано на регистрируемом сообщении «внутри условия if» или на чем-то еще? Записывается ли вообще "внутреннее" сообщение?

Prisoner 11.09.2018 22:51

Кроме того, если conv.ask() не запускается - как вы вызываете обработчик handle_permission?

Prisoner 11.09.2018 22:52

Да, в журналах Firebase я вижу "Внутри условия". Странно, я вижу оператор журнала, поэтому предполагаю, что conv.ask тоже должен выполняться, но я не слышу приглашения от conv.ask.

Sai 11.09.2018 23:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
121
0

Другие вопросы по теме