5

我注意到 Facebook 似乎支持使用令牌/PIN 码而不是用户/登录来在电视或控制台等设备上使用设备登录:

https://www.facebook.com/device

在开发页面的搜索中,我可以看到一篇与此相关的文章,但至少在德国有一篇文章给出了 404。

任何人都有这方面的更多信息?

谢谢

4

4 回答 4

3

我也一直在为此进行研究,但不幸的是,facebook 设备身份验证仍处于试验阶段,他们没有提供新的密钥(合作伙伴)来使用设备身份验证。

您可以在此处找到工作示例:http: //oauth-device-demo.appspot.com/ 只需查看网站源代码,您就可以获得适用于它的 appID。

另一个是 twitter PIN oauth,它正在工作并且公开可用(我正在使用它) https://dev.twitter.com/docs/auth/pin-based-authorization

于 2013-06-19T01:57:26.740 回答
2

实现设备登录

Facebook 设备登录适用于直接通过 Internet 进行 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 并告诉人们在他们的 PC 或智能手机上访问 verify_uri,例如 facebook.com/device。请参阅设计指南

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 步再次执行设备登录流程以检索新的有效令牌。

于 2015-12-05T09:53:10.730 回答
2

没有 facebook sdk 的智能电视/设备的 Facebook 登录可以通过代码进行,请在此处查看文档:

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

于 2015-10-14T16:22:51.443 回答
0

他们再次改变它。目前文档不符合实际情况。

通常所有工作都按预期工作,但有一点点不同。Login from Devices配置现在移动到Products -> Facebook Login.

所以你需要:

  • App id从标题中获取您的信息,
  • Client Token从应用程序获取Settings -> Advanced。还有Native or desktop app?问题/配置。我打开它。
  • 添加产品(只需点击Add product,然后点击。回到您的应用配置,点击新添加Get started的,您将看到您的配置。Facebook loginFacebook loginLogin from Devices
于 2016-12-18T01:05:21.077 回答