Alexa Remainder API (REST API) — недопустимый токен носителя

Я пытаюсь отправить оповещение/остаток через POSTMan на свое умение.

Вариант 1: API токена аутентификации с областью действия "alexa:skill_messaging"

POST /auth/o2/token HTTP/1.1
Host: api.amazon.com
Content-Type: application/x-www-form-urlencoded
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache
Postman-Token: 2ae7afa3-c3f8-493f-b6e3-2db1e44e3a17,a4e45e8e-d0eb-4b3f-a612-e7d1959fdbe6
Host: api.amazon.com
Accept-Encoding: gzip, deflate
Content-Length: 236
Connection: keep-alive
cache-control: no-cache

grant_type=client_credentials&client_id=******************&client_secret=***********17a4f7b348982bdb4&scope=alexa%3Askill_messaging

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

вариант 2: API токена аутентификации с областью действия "alexa::alerts:reminders:skill:readwrite"

POST /auth/o2/token HTTP/1.1
Host: api.amazon.com
Content-Type: application/x-www-form-urlencoded
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache
Postman-Token: 2ae7afa3-c3f8-493f-b6e3-2db1e44e3a17,c6765f77-6e35-419f-b614-780dae20ad4e
Host: api.amazon.com
Accept-Encoding: gzip, deflate
Content-Length: 236
Connection: keep-alive
cache-control: no-cache

grant_type=client_credentials&client_id=**************************&client_secret=************************&scope=alexa%3A%3Aalerts%3Areminders%3Askill%3Areadwrite

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

Шаг 2. Отправка запроса на оповещение с использованием токена, сгенерированного Scope "alexa:skill_messaging" для получения недопустимого токена носителя

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

Дайте мне знать, если я что-то упустил, а также где можно найти другую область действия для Alexa Authenictaion Token API.


person bgara    schedule 08.12.2019    source источник


Ответы (1)


К сожалению,

"Это ограничение Reminders API: для создания напоминаний необходимо использовать маркер доступа в сеансе. Вы также можете выполнять операции GET, UPDATE и DELETE вне сеанса, поэтому проверьте это для получения дополнительной информации."

Только говоря с устройством можно получить токен доступа в сеансе для создания напоминаний.

Вне сеанса — получайте напоминания, созданные навыком (API Skill Messaging):

    const IncomingMessageHandler = {
        canHandle(handlerInput) {
            const request = handlerInput.requestEnvelope.request;
            return request.type === 'Messaging.MessageReceived'
        },
        async handle(handlerInput) {
            const { requestEnvelope, context } = handlerInput;
            console.log(`Message content: ${JSON.stringify(requestEnvelope.request.message)}`);

            try {
              const client = handlerInput.serviceClientFactory.getReminderManagementServiceClient();
              const remindersResponse = await client.getReminders();
              console.log(JSON.stringify(remindersResponse));
            } catch (error) {
              console.log(`error message: ${error.message}`);
              console.log(`error stack: ${error.stack}`);
              console.log(`error status code: ${error.statusCode}`);
              console.log(`error response: ${error.response}`);
            }

            context.succeed();
        }
    }

https://developer.amazon.com/docs/smapi/alexa-reminders-api-reference.html#in-session-and-out-of-session-behavior-for-alexa-reminders-api

https://forums.developer.amazon.com/questions/196445/reminders-can-only-be-created-in-session.html#answer-196860

https://developer.amazon.com/pt-BR/docs/alexa/smapi/skill-messaging-api-reference.html

person Deividson Damasio    schedule 04.03.2020