2013年4月27日 星期六

Facebook : Login for Desktop Apps



   果想要讓一個小盒子(例如:Embedded System or Raspberry Pi)能夠拿到facebook的access token來做一些事情,例如:控制GPIO顯示未讀訊息(NOTICE : Physical Facebook Notifier)、抓臉書的相片當做數位像框、當關注的異性感情狀態變更時會有鬧鈴提醒等等。

   盒子通常不會有實體IP(而且也不切實際,就算有IP,幫每個盒子都必須申請一個特別的Facebook ID也很噁心),此時就可以使用Desktop版本的登入方式,操作概念如下:

1. 將redirect_url改成 https://www.facebook.com/connect/login_success.html

    https://www.facebook.com/dialog/oauth?
        client_id=YOUR_APP_ID
       &redirect_uri=https://www.facebook.com/connect/login_success.html
       &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
       &response_type=token


2. 偵測redirect的event,在把redirect Url上的access token變數拿下來用

https://www.facebook.com/connect/login_success.html#
    access_token=USER_ACCESS_TOKEN...

   偵測的方式可以用WebView掛Listener來完成,看起來還是要提供螢幕讓使用者登入:(,不過之前在hack Google Play Console的API時,有參考Andlytics模仿Google登入的request內容,應該還是有機會辦到純Program的方式拿到access token


----------- 2013/4/29 修正 -------------

看起來NOTICE : Physical Facebook Notifier作法比較簡單,只把七段顯示器直接透過serial port來操作,所有認證的畫面及流程都用桌面軟體搞定。



沒有留言:

張貼留言