Не получает AccessToken на симуляторе

Моя конечная точка выполнения не получает accessToken. Это нормально? Потому что, когда я на симуляторе, он на самом деле не запрашивает вход в мою конечную точку авторизации, поэтому он не получит токен доступа. Мой Oauth отлично работает после тестирования с помощью Oauth Play Ground.

action.json

    {
"accountLinking": {
    "clientId": "",          // SENSITIVE INFORMATION BLANK
    "clientSecret": "",       // SENSITIVE INFORMATION BLANK
    "grantType": "AUTH_CODE", 
  "authenticationUrl": "",      // SENSITIVE INFORMATION BLANK
  "accessTokenUrl": ""          // SENSITIVE INFORMATION BLANK


  },
  "actions": [{
        "description": "",
        "name": "MAIN",
        "fulfillment": {
            "conversationName": "PASS TEXT"
        },
        "intent": {
            "name": "actions.intent.MAIN",
            "trigger": {
                "queryPatterns": [
                    "talk to APP NAME"
                ]
            }
        }
    }],

 "conversations": {
        "PASS TEXT": {
            "name": "PASS TEXT",
            "url": ""  // MY FULFILLMENT END POINT
            "fulfillmentApiVersion": 2
        }
    }
}

Выполнение полученного запроса

Запрос зарегистрирован в текстовом файле

jsondata = file_get_contents('php://input');
$postdata = json_decode($jsondata, true);

$RAWfile = print_r($postdata, true);
file_put_contents('RAWfile.txt', $RAWfile);

RAWfile.txt

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

    [conversation] => Array
        (
            [conversationId] => 1500924702161
            [type] => NEW
        )

    [inputs] => Array
        (
            [0] => Array
                (
                    [intent] => actions.intent.MAIN
                    [rawInputs] => Array
                        (
                            [0] => Array
                                (
                                    [inputType] => VOICE
                                    [query] => ask APP NAME to bla bla
                                )

                        )

                    [arguments] => Array
                        (
                            [0] => Array
                                (
                                    [name] => trigger_query
                                    [rawText] => bla bla
                                    [textValue] => bla bla
                                )

                        )

                )

        )

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

                )

        )

    [device] => Array
        (
        )

    [isInSandbox] => 1
)

Запрос симулятора

{
    "query": "bla bla",
    "accessToken": "ya29.Gl2TBLrbKjcgK-6jsARmc4Zvkx8qT2X2rE3vsuwEVc_Ey2-q4OUqNWaJPBlXzIjONb_u2MbrE-rgnfwQSZpbZReXsmZjoGOy18Tvp7xzzSJb-cW9SjZ32uLBaKO7vGE",
    "expectUserResponse": true,
    "conversationToken": "CiZDIzU5O...",
    "surface": "GOOGLE_HOME",
    "inputType": "VOICE",
    "locale": "en-US",
    "location": {
        "address": "Googleplex, Mountain View, CA, United States",
        "position": {
            "lat": 37.421980615353675,
            "lng": -122.08419799804688
        },
        "zipCode": "94043",
        "city": "Mountain View"
    },
    "debugInfo": {
        "assistantToAgentDebug": {
            "assistantToAgentJson": {
                "user": {
                    "userId": "bla",
                    "locale": "en-US"
                },
                "conversation": {
                    "conversationId": "1501004260313",
                    "type": "NEW"
                },
                "inputs": [
                    {
                        "intent": "actions.intent.MAIN",
                        "rawInputs": [
                            {
                                "inputType": "VOICE",
                                "query": "bla"
                            }
                        ],
                        "arguments": [
                            {
                                "name": "trigger_query",
                                "rawText": "bla",
                                "textValue": "bla"
                            }
                        ]
                    }
                ],
                "surface": {
                    "capabilities": [
                        {
                            "name": "actions.capability.AUDIO_OUTPUT"
                        }
                    ]
                },
                "device": {},
                "isInSandbox": true
            }
        }
    }
}

Ответ симулятора

{
    "response": "Sure. Here's the test version of bla.\nsure\n",
    "conversationToken": "bla",
    "audioResponse": "//NExAASS...",
    "debugInfo": {
        "agentToAssistantDebug": {
            "agentToAssistantJson": {
                "conversationToken": "{\"state\":null,\"data\":{}}",
                "expectUserResponse": false,
                "finalResponse": {
                    "richResponse": {
                        "items": [
                            {
                                "simpleResponse": {
                                    "textToSpeech": "sure",
                                    "displayText": "sure"
                                }
                            }
                        ],
                        "suggestions": []
                    }
                }
            }
        }
    }
}

person Elo97234c    schedule 24.07.2017    source источник


Ответы (2)


Связывание учетной записи выполняется через консоль действий по адресу https://console.actions.google.com/.

В пункте меню «Обзор» вам нужно перейти к шагу 5: Привязка учетной записи.

Там вы можете установить свои конечные точки, необходимые области и т. д.

person Prisoner    schedule 24.07.2017
comment
Я обновил необходимую информацию, но симулятор действий ее не использует :/ - person Elo97234c; 25.07.2017

Думаю, вам нужно заполнить эту часть вручную - если вы посмотрите в ответ, вы увидите URL-адрес - скопируйте / вставьте и запустите его, он должен завершить процесс привязки учетной записи - https://developers.google.com/actions/identity/account-linking

«В области журнала скопируйте и вставьте URL-адрес из поля debugInfo.sharedDebugInfo.debugInfo в свой веб-браузер. Вы будете перенаправлены на URL-адрес аутентификации для вашего собственного сервера, указанный в API.AI или в консоли действий».

person Madgeni    schedule 25.07.2017
comment
Я разместил запрос/ответ симулятора, но я не вижу и URL-адреса - person Elo97234c; 25.07.2017
comment
Как ни странно, я пошел проверить свой, чтобы сравнить, и у меня была такая же проблема. Вышел, вернулся в него и перепроверил, и я получил отладочную информацию, так что это кажется случайным - person Madgeni; 25.07.2017
comment
хм, нет ли способа сообщить об ошибках. Потому что я вообще не вижу URL. Пробовал больше 10 раз :3 - person Elo97234c; 25.07.2017