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

Alexa skill通过语音启用技能时不请求许可(通知)

仰成天
2023-03-14

当在Web或应用程序中启用(出站通知)时,有问题的技能需要一个权限。但是,当实现技能启用事件时,它不会要求用户是否给予通知权限。技能启用本身有效,但默认情况下权限为否。如何使alexa在通过语音启用时请求权限?

Alexa可以通过语音提示他们启用出站通知吗?

skill.json

{
"manifest": {
    "publishingInformation": {
        "locales": {
            "en-US": {
                "summary": "test skill summary",
                "examplePhrases": [
                    "Alexa, launch test skill",
                    "Alexa, open test skill",
                    "Alexa, start test skill"
                ],
                "keywords": [
                    "test skill"
                ],
                "name": "test skill",
                "description": "test skill Description",
                "smallIconUri": "",
                "largeIconUri": "",
                "updatesDescription": ""
            }
        },
        "isAvailableWorldwide": true,
        "testingInstructions": "n/a",
        "category": "EVENT_FINDERS",
        "distributionCountries": [],
        "automaticDistribution": {
            "isActive": false
        }
    },
    "apis": {
        "custom": {
            "endpoint": {
                "uri": "arn:aws:lambda:us-east-1:"
            },
            "interfaces": []
        }
    },
    "manifestVersion": "1.0",
    "privacyAndCompliance": {
        "allowsPurchases": false,
        "locales": {
            "en-US": {
                "privacyPolicyUrl": "",
                "termsOfUseUrl": ""
            }
        },
        "isExportCompliant": true,
        "containsAds": false,
        "isChildDirected": false,
        "usesPersonalInfo": false
    },
    "events": {
        "endpoint": {
            "uri": "arn:aws:lambda:us-east-1:"
        },
        "publications": [
            {
                "eventName": "AMAZON.MessageAlert.Activated"
            },
            {
                "eventName": "AMAZON.MediaContent.Available"
            }
        ],
        "regions": {
            "NA": {
                "endpoint": {
                    "uri": "arn:aws:lambda:us-east-1:",
                    "sslCertificateType": "Trusted"
                }
            }
        },
        "subscriptions": [
            {
                "eventName": "SKILL_PROACTIVE_SUBSCRIPTION_CHANGED"
            },
            {
                "eventName": "SKILL_ENABLED"
            },
            {
                "eventName": "SKILL_DISABLED"
            },
            {
                "eventName": "SKILL_PERMISSION_ACCEPTED"
            },
            {
                "eventName": "SKILL_PERMISSION_CHANGED"
            },
            {
                "eventName": "SKILL_ACCOUNT_LINKED"
            }
        ]
    },
    "permissions": [
        {
            "name": "alexa::devices:all:notifications:write"
        }
    ]
}

}

谢谢你的帮助

共有2个答案

宰父霖
2023-03-14

要通过lambda运行提醒,其他权限可能是相同的格式。

const CreateReminderIntent = {

  canHandle(handlerInput) {
    const { request } = handlerInput.requestEnvelope;
    return request.type === 'IntentRequest' && request.intent.name === 'CreateReminderIntent';
  },

  async handle(handlerInput) {
    const { requestEnvelope, serviceClientFactory, responseBuilder } = handlerInput;
    const consentToken = requestEnvelope.context.System.user.permissions
      && requestEnvelope.context.System.user.permissions.consentToken;
    if (!consentToken) {
      return handlerInput.responseBuilder
        .addDirective({
          type: "Connections.SendRequest",
          name: "AskFor",
          payload: {
            "@type": "AskForPermissionsConsentRequest",
            "@version": "1",
            "permissionScope": "alexa::alerts:reminders:skill:readwrite"
          },
          token: "<string>"
        })
        .getResponse();
    }

    try {

      const speechText = "Great! I've scheduled a reminder for you";

      const ReminderManagementServiceClient = serviceClientFactory.getReminderManagementServiceClient();
      const reminderPayload = {
        "trigger": {
          "type": "SCHEDULED_RELATIVE",
          "offsetInSeconds": "10",
          "timeZoneId": "Europe/London"
        },
        "alertInfo": {
          "spokenInfo": {
            "content": [{
              "locale": "en-GB",
              "text": "Wash the dog"
            }]
          }
        },
        "pushNotification": {
          "status": "ENABLED"
        }
      };

      await ReminderManagementServiceClient.createReminder(reminderPayload);
      return responseBuilder
        .speak(speechText)
        .getResponse();

    } catch (error) {
      console.error(error);
      return responseBuilder
        .speak('Uh Oh. Looks like something went wrong.')
        .getResponse();
    }
  }
};
厉永宁
2023-03-14

可能有不同的方式,但一旦你掌握了这项技能,我相信你需要发送一张申请许可卡。据我所知,这个想法是为了确保亚马逊作为第三方许可授予者参与进来。这将在用户手机上的Alexa应用程序中弹出权限请求。这一增加的安全层只是确保客户确切地看到他们授予的权限。

在你的技能中,你可以用几种不同的方法来做这件事。您可以检查用户第一次连接的情况,并在持久客户数据层中跟踪第一次连接。或者,当你使用这部分技能时,你可以检查用户是否有权限。如果他们没有回复,告诉客户你给他们发了一张许可证。

以下是有关许可卡的更多信息:https://developer.amazon.com/en-US/docs/alexa/custom-skills/request-customer-contact-information-for-use-in-your-skill.html#permissions-申请客户同意的卡片

 类似资料:
  • 我有一个Alexa技能,已经在Alexa应用商店发布了一段时间。最近,用户通过语音安装这项技能的能力不再有效。在过去的7天里我注意到了这一点。 现在,当用户询问“Alexa,启用商店店员”时,他们会听到这样的信息: “如果您想启用此技能,可以在Alexa应用程序的“技能”部分找到它。” 以前(对于我尝试过的几乎所有技能),正常的反应是安装并启用该技能。 有没有人见过这种行为,或者知道我如何解决这个

  • 我正在构建一个应用程序,它使用语音命令来执行某些功能。我这里有一些代码 然而,这种方法需要通过点击按钮来激活。有没有办法通过语音命令启动语音识别器?就像现在的谷歌一样,你可以说“Ok Google”,然后它就会打开语音识别器活动并监听命令? 谢谢。

  • 我正试图创建一个呼叫录音机应用程序,然而,我的音频来源时,它的麦克风工作正常,但它不能捕捉第二个声音。 如果我更改为VOICE_CALL,我的应用程序关闭。 我在PlayStore上看到了数百个类似的应用程序,并想知道它们能够记录通话双方的秘密是什么。

  • 我有一个具有OAuth2授权的Spring Cloud应用程序: 我添加了这个安全配置: github:https://github.com/rcbandit111/OAuth2/blob/master/src/main/java/org/engine/security/WebSecurityConfig.java 打开Angular应用程序时,出现访问错误: 您知道我需要应用什么配置才能在没有强

  • 1.1. 酷狗音乐 Skill 接入流程 1.1.1. 酷狗音乐skill介绍 1.1.2. 酷狗音乐skill接入通用流程介绍 1.1. 酷狗音乐 Skill 接入流程 本文旨在介绍酷狗音乐技能的接入流程,方便B端厂商快速接入酷狗音乐优质的资源内容。 一、酷狗音乐skill介绍 二、酷狗音乐skill通用流程 1.1.1. 酷狗音乐skill介绍 酷狗音乐skill内容介绍 技能名称 介绍 价格

  • 1.1. 叮当音乐 Skill 接入流程 1.1.1. 叮当音乐skill介绍 1.1.2. 叮当音乐skill接入通用流程介绍 1.1.3. 叮当音乐skill接入流程 1.1. 叮当音乐 Skill 接入流程 本文旨在介绍叮当音乐技能的接入流程,方便B端厂商快速接入叮当音乐优质的资源内容。 一、叮当音乐skill介绍 二、叮当音乐skill通用流程 三、叮当音乐skill接入流程 1.1.1.