当前位置: 首页 > 知识库问答 >
问题:

Alexa skills事件在web服务中托管时不触发

明星剑
2023-03-14

我有一项定制技能,可以调用我创建的web服务。我可以启动并获得其他意图,但当我的技能用户更改通知权限时,我不会收到通知。我需要通知事件来获取用户id,以便稍后通过其他服务发送推送通知。

下面是我的json文件:

{
  "manifest": {
    "apis": {
      "custom": {
        "endpoint": {
          "uri": "https://pathToMyService",
          "sslCertificateType": "Wildcard"
        },
        "interfaces": []
      }
    },
    "events": {
      "publications": [
         { "eventName": "AMAZON.TrashCollectionAlert.Activated" },
         { "eventName": "AMAZON.MessageAlert.Activated" }
       ],
       "subscriptions": [
         { "eventName": "SKILL_PROACTIVE_SUBSCRIPTION_CHANGED" },
         { "eventName": "SKILL_ENABLED" },
         { "eventName": "SKILL_DISABLED" },
         { "eventName": "SKILL_PERMISSION_ACCEPTED" },
         { "eventName": "SKILL_PERMISSION_CHANGED" },
       ],
       "regions": {
         "NA": {
           "endpoint": {
             "uri": "https://pathToMyService",
             "sslCertificateType": "Wildcard"
           }
         }
       },
       "endpoint": {
         "uri": "https://pathToMyService",
         "sslCertificateType": "Wildcard"
       }
     },
     "manifestVersion": "1.0",
     "permissions": [
       { "name": "alexa::devices:all:notifications:write" }
     ],
     "publishingInformation": {
       "locales": {
         "en-US": { "name": "Test Events" }
       }
     }
   }
 }

下面是启动请求:我截断了应用程序ID、用户ID、同意令牌、设备ID、apiAccessToken

{“version”:“1.0”,“session”:{“new”:true,“sessionId”:“amzn1.echo api.session.60ad1e76-0872-4e10-b79d-7144cdf3e1c9”,“application”:{“applicationId”:“amzn1.ask.skill.59d607003”},“user”:{“userId”:“amzn1 ask.account AGB7EOY”,“permissions”:{“approvertoken”:“eyj0exaijkv1”},“context”:{“System”:{“application”:“application.ask.ask.amzn0703”,“用户:{”userId:“amzn1.ask.account.AGB7EOY”,“权限:{”approvertoken:“eyJ0eXAiOiJKV1Qi”}},设备:{”deviceId:“amzn1.ask.device.afnxdzoaemfdkk”,“supportedInterfaces:{}”,apiEndpoint:”https://api.amazonalexa.com“,”apiAccessToken“:”eyJ0eXAiOiJKV1Qi“}”,request“{”type“:”LaunchRequest“,”requestId“:”amzn1.echo api.request.adb318af-1977-4b36-b8ad-0bb4352fa563“,”时间戳“:”2020-03-22T23:37:55Z“,”语言环境“:”en-US“,”shouldLinkResultBeReturned“:”false}”

谢啦

共有1个答案

曾新
2023-03-14

我解决了这个问题:当我通过技能更新时。json文件使用询问api更新技巧-s amzn1。问技巧59d6-f测试。json它没有正确更新。我注意到今天我收到了最新的ask-api-get-skill-s amzn1。问技巧59d6

 类似资料:
  • 我试图使用Eclipse(MARS)、TOmcat 8.x和Jersey 2.2.2构建一个Rest服务 我已经创建了这么多链接,或者我已经导入了项目本身。但是当我在服务器上运行项目时,我总是得到404找不到。 Apache.catalina.core.ApplicationContext日志信息:将servlet jersey-serlvet标记为不可用Apache.catalina.core.

  • 当你想要分享你代码给其他人,或者是你需要在另外一台电脑上工作时,托管代码就会是一个非常重要的话题。基本上代码托管有两种不同的形式: do-it-yourself(建立一个自己的)或者 leave-me-in-peace(使用第三方提供的平台,不麻烦自己)。 (A) Do-It-Yourself 把你的 Git 仓库托管在你自己的服务器上会有很多的优点: 可以节省你花在代码托管服务上的费用。 你的代

  • 用户可以从datalist或can类型中选择一个项目,输入它自己的值。我通过JSON调用PHP脚本连接到数据库,以填充表单其余部分的其他信息。我希望当用户在列表输入中键入名称时(因此当内容模糊时),或者当用户单击DataList中的某个选项时,这会触发。 使用当输入失去焦点时会触发该函数,但当从数据列表中选择一项时,它也会等待“直到输入失去焦点,我希望事件立即触发” 使用单击datalist中的一

  • 我在本地系统上安装了laravel 5.1并开发了一个应用程序。 现在我必须在一个实时服务器上托管它。我们拥有的实时服务器是我们自己的,并且在其上运行许多其他应用程序。 我刚刚将laravel文件夹放在了一个路径中(没有其他内容),但它没有像我预期的那样工作。 我读过一些答案,上面说我必须将公用文件夹复制到服务器的公用文件夹中,其余的复制到一个文件夹中,对吗? 我必须安装作曲家,并按照larave