Amazon Alexa 中帐户链接的示例 python 代码
Sample python code for Account Linking in Amazon Alexa
在哪里可以找到 Amazon Alexa 中帐户链接的示例 Python 代码。我只能在这里获得文档。
https://developer.amazon.com/docs/account-linking/understand-account-linking.html
请帮帮我!!
帐户 linking 对所有语言的工作方式相同,您应该熟悉 OAuth2
在开发人员门户中配置帐户 linking。
Users can link account in two ways:
- From the skill detail card in the Alexa app while enabling the skill.
- From a link account card in the Alexa app after making a request that requires authentication.
当您 link 使用您的技能的帐户时,该技能的每个后续请求都将包含一个访问令牌。然后,您可以使用此 accessToken
获取 linked 帐户的关联数据。
"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
,则表示用户未通过身份验证,您可以向用户发送 Account Link Card
。除了发送 Account Link card
的代码外,link-an-account 过程中不涉及任何编码。
发送账号Link卡:
在您的回复中 JSON 包括 LinkAccount
卡片
...
"outputSpeech": {
"type": "SSML",
"ssml": "<speak> Please link your account </speak>"
},
"card": {
"type": "LinkAccount"
}
...
要在 Python 中发送帐户 Link 卡…
from ask_sdk_model.ui import Card
…
handler_input.response_builder.set_card(Card('LinkAccount'))
我们可以使用 ASK SDK 中的函数 get_account_linking_access_token()
for python,来获取用于帐户链接的用户令牌
并存储在变量 account_linking_token
中。如果已经绑定账号,使用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
在哪里可以找到 Amazon Alexa 中帐户链接的示例 Python 代码。我只能在这里获得文档。
https://developer.amazon.com/docs/account-linking/understand-account-linking.html
请帮帮我!!
帐户 linking 对所有语言的工作方式相同,您应该熟悉 OAuth2
在开发人员门户中配置帐户 linking。
Users can link account in two ways:
- From the skill detail card in the Alexa app while enabling the skill.
- From a link account card in the Alexa app after making a request that requires authentication.
当您 link 使用您的技能的帐户时,该技能的每个后续请求都将包含一个访问令牌。然后,您可以使用此 accessToken
获取 linked 帐户的关联数据。
"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
,则表示用户未通过身份验证,您可以向用户发送 Account Link Card
。除了发送 Account Link card
的代码外,link-an-account 过程中不涉及任何编码。
发送账号Link卡:
在您的回复中 JSON 包括 LinkAccount
卡片
...
"outputSpeech": {
"type": "SSML",
"ssml": "<speak> Please link your account </speak>"
},
"card": {
"type": "LinkAccount"
}
...
要在 Python 中发送帐户 Link 卡…
from ask_sdk_model.ui import Card
…
handler_input.response_builder.set_card(Card('LinkAccount'))
我们可以使用 ASK SDK 中的函数 get_account_linking_access_token()
for python,来获取用于帐户链接的用户令牌
并存储在变量 account_linking_token
中。如果已经绑定账号,使用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