2013-05-31 67 views
3

我已经注意到Facebook的似乎支持设备登录与令牌/ PIN代码,而不是像电视或控制台设备时使用的用户/登录:使用设备登录

https://www.facebook.com/device

在寻找开发页面,我可以看到有一篇文章涉及到这一点,但至少在德国,一个给404.

任何人都有更多的信息?

感谢

+0

仅供参考,因此目前标准草案正在进行OAuth 2.0设备流程 - https://tools.ietf.org/html/draft-denniss-oauth-device-flow –

回答

1

实现对设备

Facebook Login for Devices登录是设备直接进行HTTP调用OV呃互联网。以下是您的设备可以进行的API调用和响应。

1.设备

更改设置>高级> OAuth的设置>设备 '是' 登录启用登录。

2.生成这是需要facebook device identification

当有人点击登录与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秒到期的人。您应该取消时间后登录流程,如果你不接受的访问令牌
  • 您的设备应查询设备登录API每5秒钟,看是否授权已成功

3。显示代码

您的设备应该显示user_code并告诉人们在他们的PC或智能手机上访问诸如facebook.com/device的verification_uri。请参阅Design Guidelines

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.确认成功登录

你的设备应该显示他们的名字和(如果可用),资料图片,直到他们点击继续。要获得此人的姓名和个人资料照片,您的设备应该做一个标准的图形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再次执行设备登录流程以检索新的有效令牌。

+0

somnath-muluk @没有设备登录API的SDK? – cypronmaya

0

他们再次改变它。此时documentation不适合实际情况。

通常所有的预期工作都有一点小差异。 Login from Devices配置现在移动到Products -> Facebook Login

所以,你需要:

  • 让你App id从标题,
  • 得到Client Token从应用Settings -> Advanced。还有Native or desktop app?问题/配置。我打开它。
  • 添加产品(只需点击Add product,然后Facebook loginGet started。将返回到您的应用程序配置,单击以新增Facebook login,你会看到你的Login from Devices配置。