Не получает токен доступа

Я успешно привязал учетную запись, но не получил ни одного accessToken для моей конечной точки выполнения.
Поле AccessToken пусто в json, отправленном в мою конечную точку выполнения.

Json получен к выполнению

 Array
 (
[user] => Array
    (
        [userId] => 1502895338751
        [locale] => en-US
    )

[conversation] => Array
    (
        [conversationId] => 1502895338751
        [type] => ACTIVE
        [conversationToken] => {"state":null,"data":{}}
    )

[inputs] => Array
    (
        [0] => Array
            (
                [intent] => actions.intent.TEXT
                [rawInputs] => Array
                    (
                        [0] => Array
                            (
                                [inputType] => KEYBOARD
                                [query] => talk to APPNAME
                            )

                    )

                [arguments] => Array
                    (
                        [0] => Array
                            (
                                [name] => text
                                [rawText] => talk to APPNAME
                                [textValue] => talk to APPNAME
                            )

                    )

            )

    )

[surface] => Array
    (
        [capabilities] => Array
            (
                [0] => Array
                    (
                        [name] => actions.capability.AUDIO_OUTPUT
                    )

                [1] => Array
                    (
                        [name] => actions.capability.SCREEN_OUTPUT
                    )

            )

    )

[device] => Array
    (
    )

[isInSandbox] => 1
)

Не совсем уверен, что делать в этот момент, застрял здесь уже больше недели. Я связался со службой поддержки AOG, но они, кажется, не понимают, что я пытаюсь сказать :/

введите здесь описание изображения

Мой ответ от выполнения, если accessToken не найден

    header('Content-Type: application/json');
    $askToken = array (
  'conversationToken' => '{"state":null,"data":{}}',
  'expectUserResponse' => true,
  'expectedInputs' => 
  array (
    0 => 
    array (
      'inputPrompt' => 
      array (
        'initialPrompts' => 
        array (
          0 => 
          array (
            'textToSpeech' => 'PLACEHOLDER_FOR_SIGN_IN',

          ),
        ),
        'noInputPrompts' => 
        array (
        ),
      ),
      'possibleIntents' => 
      array (
        0 => 
        array (
          'intent' => 'actions.intent.SIGN_IN',
          'inputValueData' => 
         (object) array (
          ),
        ),
      ),
    ),
  ),
);
 echo json_encode($askToken);
 exit();

person Elo97234c    schedule 16.08.2017    source источник
comment
Как вы запрашиваете привязку учетной записи (покажите код или снимки экрана) и работает ли это? Можете ли вы показать скриншот раздела «Связывание учетных записей» в консоли «Действия»?   -  person Prisoner    schedule 16.08.2017
comment
Да, мой сервер OAUTH2.0 работает отлично (проверено с помощью Google OAUTH Playground). Я просто не получаю никаких вариантов входа для пользователя при тестировании на симуляторе.   -  person Elo97234c    schedule 16.08.2017
comment
Вы используете API.AI или группировки? Как вы запускаете вход?   -  person Prisoner    schedule 16.08.2017
comment
я использую групповые действия, как указано в этой статье developers.google.com/actions/identity/account -связывание, если вы перейдете к разделу «Связывание учетной записи при вызове», вы увидите параметр «Требуется вход для приветственного намерения», но дело в том, что я не использую API.AI, я использую gactions. Там нет никаких вариантов, чтобы установить его для gactions есть?   -  person Elo97234c    schedule 16.08.2017


Ответы (1)


Поскольку вы не используете API.AI, вам необходимо инициировать запрос на привязку учетной записи во время выполнения одного из ваших намерений — возможно, вашего приветственного намерения. JSON, который вам нужно отправить обратно, в этом случае выглядит примерно так:


{
  "conversationToken": "{\"state\":null,\"data\":{}}",
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "initialPrompts": [
          {
            "textToSpeech": "PLACEHOLDER_FOR_SIGN_IN"
          }
        ],
        "noInputPrompts": []
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.SIGN_IN",
          "inputValueData": {}
        }
      ]
    }
  ]
}
person Prisoner    schedule 17.08.2017
comment
Я сделал следующее, как вы сказали, теперь все, что помощник говорит, Извините, я не получил никакого ответа, Извините, я не понял - person Elo97234c; 17.08.2017
comment
Обновите исходный вопрос, указав любую дополнительную информацию, которая у вас есть — журналы и JSON, которые вы отправляете и получаете после отправки запроса на вход. - person Prisoner; 17.08.2017