2016-11-24 125 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令牌可能是一種安全,標準的方式。 –