Как определить, запускает ли пользователь навык впервые в Alexa? - PullRequest
0 голосов
/ 06 декабря 2018

Есть ли способ определить, запускает ли пользователь навык впервые?без использования внутренней БД для хранения информации о посещениях?

Например, объект запроса указывает, предоставил ли пользователь разрешение или нет.Есть ли способ также определить, запускает ли пользователь навык впервые?

{
   "version":"1.0",
   "session":{
      "new":true,
      "sessionId":"amzn1.echo-api.session.abc",
      "application":{
         "applicationId":"amzn1.ask.sabc3"
      },
      "user":{
         "userId":"amzn1.ask.account.AGQ"
      }
   },
   "context":{
      "System":{
         "application":{
            "applicationId":"amzn1.ask.skill.bb"
         },
         "user":{
            "userId":"amzn1.ask.account.AGQ"
         },
         "device":{
            "deviceId":"amzn1.ask.device.AHH",
            "supportedInterfaces":{

            }
         },
         "apiEndpoint":"https://api.amazonalexa.com",
         "apiAccessToken":"eysed"
      }
   },
   "request":{
      "type":"LaunchRequest",
      "requestId":"amzn1.echo-api.request.09b",
      "timestamp":"2018-10-15T17:03:03Z",
      "locale":"en-US",
      "shouldLinkResultBeReturned":false
   }
}

Ответы [ 3 ]

0 голосов
/ 07 декабря 2018

Вы можете определить, параллельно проверяя следующие два условия:

В теле запроса в сеансе у вас будет "новый" ключ.Если это true , то пользователь запускает навык впервые.

{
      "version": "1.0",
      "session": {
        "new": true,
         .
         .
         .
}

Снова в теле запроса, под сеансом будут "атрибуты" ключ.Должно быть пусто .

{
  "version": "1.0",
  "session": {
    "new": true,
    "sessionId": "amzn1.echo-api.session.[unique-value-here]",
    "application": {
      "applicationId": "amzn1.ask.skill.[unique-value-here]"
    },
    "attributes": {
    },
    .
    .
    .
}
0 голосов
/ 19 декабря 2018

Наконец-то мне пришлось пойти и добавить в картину DynamoDB.База данных, хранящая deviceId и lastvisit отметка времени.

0 голосов
/ 07 декабря 2018

Боюсь, что невозможно узнать, запустил ли пользователь этот навык впервые, без какого-либо механизма хранения, такого как Amazon S3 .

Да, объект запроса сообщает вам, что если пользователь предоставил разрешения или нет, но из токена доступа невозможно точно знать, что этот пользователь использовал навык впервые.

...