用于Amazon Alexa中的帐户链接的示例python代码

时间:2018-07-16 08:59:45

标签: alexa alexa-skills-kit

在哪里可以找到Amazon Alexa中用于帐户链接的示例Python代码。我只能在这里获得文档。

https://developer.amazon.com/docs/account-linking/understand-account-linking.html

请帮助我!

3 个答案:

答案 0 :(得分:1)

帐户链接对所有语言都以相同的方式工作,您应该熟悉OAuth2才能在开发人员门户中配置帐户链接。

  

用户可以通过两种方式链接帐户:

     
      
  1. 从Alexa应用程序的技能详细信息卡中启用技能。
  2.   
  3. 在发出需要身份验证的请求后,从Alexa应用程序中的链接帐户卡中获取。
  4.   

将帐户与您的技能相关联时,该技能随后发出的每个请求都将包含访问令牌。然后,您可以使用此accessToken获取关联帐户的关联数据。

"session": {
        "new": true,
        "sessionId": "amzn1.echo-api.session.xxxxxxxxxxx",
        "application": {
            "applicationId": "amzn1.ask.skill.xxxxxxxxxx"
        },
        "user": {
            "userId": "amzn1.ask.account.xxxxxxx",
            "accessToken": "xxxxxxxxxxxxxx"

对于已通过身份验证的用例,请始终检查accessToken是否可用,以及请求中是否没有accessToken,这表示用户未通过身份验证,您可以向用户发送{{1 }}。除了发送Account Link Card的代码之外,链接帐户过程中没有任何编码。

发送帐户链接卡

您的响应中包含JSON Account Link card

LinkAccount

答案 1 :(得分:0)

要使用Python发送帐户链接卡...

from ask_sdk_model.ui import Card

…

handler_input.response_builder.set_card(Card('LinkAccount'))

答案 2 :(得分:0)

我们可以使用 ASK SDK for python 中的函数 get_account_linking_access_token() 来获取用于帐户关联的用户令牌 并存储在变量 account_linking_token 中。如果已完成帐号关联,则使用令牌获取用户数据,如下所示:

from ask_sdk_model.ui import SimpleCard

speech_output = ''

if account_linking_token is not None:
   url = "https://api.amazon.com/user/profile?access_token{}"\
         .format(account_linking_token)
   user_data = requests.get(url).json()
   # retrieve the required user info here and populate output
   # speech_output = ...
else:
   # output msg when account linking is not done
   # speech_output = ...

# return this response from the intent handler function
response = handler_input.response_builder
            .speak(speech_output)
            .ask(reprompt)
            .set_card(SimpleCard(speech_output))
            .response