2016-11-24 131 views
2

我想弄清楚如何链接技能与自定义用户帐户。这里是什么文件说:如何使用来自亚马逊的Alexa API为技巧设置账户链接?

帐户链接隐补助流器(用于自定义技能):

  1. 在Alexa的应用程序,用户可以使技能。
  2. 这个应用程序显示应用程序内就在您的 登录页面,使用授权URL在开发者门户注册你的技能,当你 提供。当 伴侣应用程序调用此URL时,它包括state,client_id, response_typescope作为查询字符串参数。

    • 该状态由Alexa服务在帐户链接过程中使用。您的页面需要跟踪此值,因为您必须稍后将其传回。
    • state在帐户
    • client_id过程中使用了Alexa服务是由您定义当设置帐户连结在开发人员门户的技能的值。
    • response_type对于隐式授权流程始终为token
    • scope是访问范围的可选列表,指示所请求的访问级别。您可以在为技能启用帐户关联时定义一组支持的范围。
    • redirect_uri是用户通过身份验证后服务重定向到的URL。
  3. 用户使用他们的正常凭据登录您的站点。

  4. 您的服务会对用户进行身份验证,然后生成唯一标识系统中用户的访问令牌。
  5. 您的服务将用户重定向到指定的redirect_uri,并沿着URL片段中的state,access_tokentoken_type传递。
  6. Alexa服务验证返回的信息,然后为Alexa用户保存access_token
  7. 用户的Alexa账户现在已链接到您服务中的账户,并且该技能已准备就绪可以使用。

这里是我所得到的形成亚马逊:

{ 
"client_id":"my-client-id", 
"response_type":"token", 
"state":"some_long_string", 
"redirect_uri":"https:\/\/subdomain.amazon.com\/spa\/skill\/account-linking-status.html?vendorId=W5TGH673R 
} 

根据我阅读上面,我是重新导向到:

https://subdomain.amazon.com/spa/skill/account-linking-status.html?vendorId=W5TGH673R&state=same_long_string&access_token=something-I-made-up&token_type=Bearer 

可惜,这似乎并没有工作。基本上我得到:Unable to link your skill

任何想法?

回答

3

我遇到了类似的问题,我不得不在令牌之前使用散列而不是&符号。我的重定向网址是:

https://subdomain.amazon.com/spa/skill/account-linking-status.html?vendorId=W5TGH673R#access_token=something-I-made-up&state=same_long_string&token_type=Bearer 
+0

很好。有用。想知道为什么 – Patrioticcow

+0

好,令牌存储在哪里。它安全吗? –

+0

令牌可以是任何你想要的,当用户进行语音交互时,它会通过Alexa传回给你。 OAuth令牌可能是一种安全,标准的方式。 –