2016-11-24 10 views
2

私はスキルをカスタムユーザーアカウントにリンクする方法を理解しようとしています。 (カスタムスキルで使用するために)暗黙的に付与するためのフローをリンクAmazonのAlexa APIを使用してスキルのアカウントリンクを設定する方法は?

アカウント:ここにドキュメントが言うことである

  1. Alexaのアプリでは、ユーザーは、スキルを有効にします。
  2. アプリは開発者ポータル上であなたのスキルを登録するときに、あなたが提供 認証URLを使用して、右のアプリ内で ログインページが表示されます。 コンパニオンアプリがこのURLを呼び出すと、クエリ文字列パラメータとしてstateclient_idresponse_type、およびscopeが含まれます。

    • 状態は、アカウントのリンク処理中にAlexaサービスによって使用されます。あなたのページは後でこの値を渡す必要があるので、この値を追跡する必要があります。
    • stateがアカウント
    • client_id中にAlexaのサービスで使用されていることは、あなたが開発者ポータル業者のためにリンクするアカウントを設定するときあなたによって定義された値です。
    • 暗黙的な許可フローでは、response_typeは常にtokenです。
    • scopeは、要求されたアクセスのレベルを示すアクセススコープのオプションリストです。スキルのアカウントリンクを有効にするときにサポートするスコープのセットを定義します。
    • redirect_uriは、ユーザーが認証されると、サービスがユーザーをリダイレクトするURLです。
  3. ユーザーは、サイトの通常の資格情報を使用してログインします。

  4. サービスはユーザーを認証し、システム内のユーザーを一意に識別するアクセストークンを生成します。
  5. お客様のサービスでは、指定されたredirect_uriにリダイレクトされ、stateaccess_token、およびtoken_typeのURLフラグメントが渡されます。
  6. Alexaサービスは返された情報を検証し、Alexaユーザーのためにaccess_tokenを保存します。
  7. ユーザーのAlexaアカウントがサービス内のアカウントにリンクされ、スキルを使用できるようになりました。ここで

は、私はアマゾンを形成し得るものです:残念ながら、これは動作していないよう

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 

:私はに戻ってリダイレクトしています上に読んだものに基づいて

{ 
"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 
} 

。基本的に私は得る:Unable to link your skill

アイデア?

答えて

3

同様の問題が発生しました。トークンの前にアンパサンドの代わりにハッシュを使用する必要がありました。私のリダイレクトURLは:

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トークンは安全で標準的な方法です。 –

関連する問題