web-dev-qa-db-ja.com

スマートテレビ/コンソールでデバイスログインを使用する

Facebookは、トークン/ PIN TVやコンソールなどのデバイスで使用されるユーザー/ログインの代わりにコードを使用したデバイスログインをサポートしているようです:

https://www.facebook.com/device

開発ページの検索では、これに関連する記事がありましたが、少なくともドイツでは404が表示されます。

誰もこれについての情報を持っていますか?

ありがとう

5
bl1ck1

私もそのために研究していますが、残念ながら、facebookデバイス認証はまだ実験的であり、デバイス認証を使用するための新しいキー(パートナー)を提供しませんでした。

作業例はここにあります: http://oauth-device-demo.appspot.com/ Webサイトのソースを見るだけで、それで動作するappIDを取得できます。

もう1つはTwitterです。PIN oauthそれは動作しており、公開されています(私は使用しています) https://dev.Twitter.com/docs/auth/pin-based-authorization

3
imkrisna

Facebook sdkを使用せずにsmarttv/devicesにFacebookでログインするには、コードを使用してください。こちらのドキュメントを確認してください。

https://developers.facebook.com/docs/facebook-login/for-devices

2
Nico AD

デバイスへのログインを実装する

デバイスのFacebookログイン は、インターネット経由でHTTP呼び出しを直接行うデバイス用です。以下は、デバイスが行うことができるAPI呼び出しと応答です。

1。デバイスのログインを有効にする

[設定]> [詳細]> OAuth [設定]> [デバイスからログイン]を[はい]に変更します。

2。 facebookデバイスの識別に必要なコードを生成します

ユーザーが[Facebookでログイン]をクリックすると、デバイスはHTTP POST=

POST https://graph.facebook.com/oauth/device?
       type=device_code
       &amp;client_id=<YOUR_APP_ID>
       &amp;scope=<COMMA_SEPARATED_PERMISSION_NAMES> // e.g.public_profile,user_likes

応答は次の形式で提供されます。

{
  "code": "92a2b2e351f2b0b3503b2de251132f47",
  "user_code": "A1NWZ9",
  "verification_uri": "https://www.facebook.com/device",
  "expires_in": 420,
  "interval": 5
}

この応答は次のことを意味します。

  • デバイスに文字列「A1NWZ9」を表示します
  • 「facebook.com/device」にアクセスしてこのコードを入力するように人に伝えます
  • コードの有効期限は420秒です。アクセストークンを受信しない場合は、その時間後にログインフローをキャンセルする必要があります
  • デバイスは5秒ごとにDevice Login APIをポーリングして、認証が成功したかどうかを確認する必要があります

3。コードを表示する

デバイスはuser_codeを表示し、facebook.com/deviceなどの自分のPCまたはスマートフォンでverify_uriにアクセスするようにユーザーに指示する必要があります。 設計ガイドライン を参照してください。

4。承認のポーリング

デバイスは、デバイスログインAPIをポーリングして、ユーザーがアプリケーションを正常に承認したかどうかを確認する必要があります。これは、ステップ1の呼び出しへの応答の間隔(5秒ごと)で行う必要があります。デバイスは次のものにポーリングする必要があります。

POST https://graph.facebook.com/oauth/device?
       type=device_token
       &amp;client_id=<YOUR_APP_ID> 
       &amp;code=<LONG_CODE_FROM_STEP_1> //e.g."92a2b2e351f2b0b3503b2de251132f47"

200のHTTPコードを取得します。つまり、ユーザーはデバイスを正常に承認しました。これで、デバイスはaccess_token値を使用して認証済みAPI呼び出しを行うことができます。

5。ログイン成功の確認

デバイスには、[続行]をクリックするまで、名前と利用可能な場合はプロフィール画像が表示されます。ユーザーの名前とプロフィール写真を取得するには、デバイスで標準のGraph API呼び出しを行う必要があります。

GET https://graph.facebook.com/v2.3/me?
      fields=name,picture&amp;
      access_token=<USER_ACCESS_TOKEN>

応答:

{
  "name": "John Doe", 
  "picture": {
    "data": {
      "is_silhouette": false, 
      "url": "https://fbcdn.akamaihd.net/hmac...ile.jpg"
    }
  }, 
  "id": "2023462875238472"
}

6。ストアトークン

デバイスはアクセストークンを永続化して、Graph APIに他のリクエストを行う必要があります。

デバイスログインアクセストークンは最大60日間有効ですが、多くのシナリオで無効になる場合があります。たとえば、Facebookのパスワードを変更すると、アクセストークンは無効になります。

トークンが無効な場合、デバイスはメモリからトークンを削除する必要があります。デバイスを使用するユーザーは、新しい有効なトークンを取得するために、手順1からデバイスログインフローを再度実行する必要があります。

2
Somnath Muluk

彼らは再びそれを変更します。現時点では ドキュメント は実際の状況に適合していません。

通常、すべてが期待どおりに機能しますが、1つの小さな違いがあります。 Login from Devices configはProducts -> Facebook Loginに移動しました。

だからあなたはする必要があります:

  • App idを見出しから取得し、
  • アプリClient TokenからSettings -> Advancedを取得します。 Native or desktop app? question/configもあります。オンにします。
  • 製品を追加します(Add productをクリックし、Get startedFacebook loginをクリックします。アプリの設定に戻り、新しく追加されたFacebook loginをクリックすると、Login from Devices構成。
0
Mykytak