2013-05-31 66 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配置。