SlideShare a Scribd company logo
Open Graph API介紹




         Bruce
         2012/7/30
         雲端線上科技股份有限公司

12年8月2日星期四
Open Graph API介紹
         很粗略&片段的介紹 請鞭小力⼀一點... (抖




         Bruce
         2012/7/30
         雲端線上科技股份有限公司

12年8月2日星期四
Social Graph




12年8月2日星期四
Open Graph是什麼




        Open graph allows apps to model user activities
               based on actions and objects.
12年8月2日星期四
Open Graph的組成
                                            ,
                                     eed
                                 ws Fr, ...
                          e , Ne nte
                    m elin p Ce
                 :Ti ts, Ap
               地方 ues
         曝 光的, Req
     可能 ations
   各種 reg
   Agg
                             Social Channels     Actions and
                                                  Objects




                                    Open Graph Mechanics



             issuing a HTTP POST to the user's /me/myapp:cook connection
             with the URL of the recipe object.
12年8月2日星期四
Graph API是什麼


             • access objects
             • 對objects進行CRUD


12年8月2日星期四
Requests

             • 分為兩種
              • User-generated requests
              • App-generated requests


12年8月2日星期四
User-generated
                 requests 的特性
             • 必須透過dialog,由user按下確認才能發
             • Only available for Canvas apps
             • 提示方式:紅色泡泡的notification
             • 發送對象:
              • 任何好友,無論有沒有裝app
              • 任何有裝該app的人,無論是否為朋友
12年8月2日星期四
App-generated
                 requests 的特性
             • 呼叫Graph API 產生
             • 提示方式:
              • bookmark的counter
              • App Center的request欄位(原本是Dashbaord)
             • 發送對象:有裝app的人

12年8月2日星期四
signed_request                   用途      格式       解讀




        A signed_request parameter is used by Facebook
                 to pass data to an application

             Facebook傳資訊給第三方App的方法
              (實際上是⼀一個HTTP parameter)




12年8月2日星期四
signed_request                                      用途                格式                  解讀




                                      FB
                                     Canvas app
             user   (第⼀一次load)        (iframe)

                     GET /ooxx_app                   POST /                     第三方APP




                                            params[:signed_request]=“vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9r
                                            jPSso.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0”


                                            內含:user token, user info, ...


12年8月2日星期四
signed_request                      用途      格式   解讀




             user
                    砍掉ooxx_app
                                 FB   (不知道)    第三方APP




12年8月2日星期四
signed_request                      用途        格式   解讀




             user
                    砍掉ooxx_app
                                 FB   (不知道)
                                       POST /    第三方APP




                                 嘿!某某user把你移除了喔



12年8月2日星期四
signed_request                      用途        格式   解讀




             user
                    砍掉ooxx_app
                                 FB   (不知道)
                                       POST /    第三方APP




                                 嘿!某某user把你移除了喔



12年8月2日星期四
signed_request                  用途     格式       解讀




    vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG
    dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0




12年8月2日星期四
signed_request                  用途     格式       解讀



                                        分隔用的


    vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG
    dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0




12年8月2日星期四
signed_request                  用途     格式       解讀


         Base64url, hex encoded         分隔用的
        HMAC SHA-256 signature
              驗證身分用
    vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG
    dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0




12年8月2日星期四
signed_request                    用途     格式     解讀


         Base64url, hex encoded            分隔用的
        HMAC SHA-256 signature
              驗證身分用
    vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG
    dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0




             Base64url, hex encoded JSON
                真正的內容 (payload)
12年8月2日星期四
signed_request                    用途     格式     解讀


         Base64url, hex encoded            分隔用的
        HMAC SHA-256 signature
              驗證身分用
    vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG
    dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0




             Base64url, hex encoded JSON
                真正的內容 (payload)
12年8月2日星期四
signed_request                    用途      格式       解讀



    就是點.後面的那⼀一段 (尚未Base64 decode)

      <?php ...
      hash_hmac('sha256', $payload, $secret, $raw = true)
      ?>

                                    app secret key

             算出來應該要跟點.的前面那段⼀一模⼀一樣
12年8月2日星期四
signed_request                    用途      格式       解讀
                                                signature


    就是點.後面的那⼀一段 (尚未Base64 decode)

      <?php ...
      hash_hmac('sha256', $payload, $secret, $raw = true)
      ?>

                                    app secret key

             算出來應該要跟點.的前面那段⼀一模⼀一樣
12年8月2日星期四
signed_request            用途   格式   解讀




             • Base64url decode後就是JSON了
             • 需注意Facebook省略了結尾的=,需要自
              己補上

             • 依照Base64的規格,要將字串長度補滿
              成4的倍數



12年8月2日星期四
signed_request            用途   格式     解讀
                                    payload



             • Base64url decode後就是JSON了
             • 需注意Facebook省略了結尾的=,需要自
              己補上

             • 依照Base64的規格,要將字串長度補滿
              成4的倍數



12年8月2日星期四
ruby的實作可參考:

             • http://stackoverflow.com/questions/
               4824035/is-there-a-facebook-credits-ruby-
               on-rails-gem-out-there-yet-or-ruby-version-
               of




12年8月2日星期四
exchange user token
                (server-side)



             必須是你app
             的相關網址           如果授權還有效
                             這個dialog會略過

                              授權過期
                              的情境有...
12年8月2日星期四
按下notification後
                會做哪些事?

             • 發含有signed_request的POST給app
             • app應該負責把用過的request刪除


12年8月2日星期四
Page Tab App是啥

             • 基本上還是Canvas app
             • 但製作好以後,可以裝在個人或專頁的
              Timeline上

             • 不過在各page上的Page Tab App似乎沒有
              獨立的app id,所以跟純Canvas相比會有
              更多限制



12年8月2日星期四
加入page tab app的方法




12年8月2日星期四
其他的

             • When over 10 people have used your
               application, it will automatically be
               submitted to Facebook's search index
             • 用Graph API撈照片,不見能⼀一次撈完,
               連續call幾次後,平均大概25張




12年8月2日星期四

More Related Content

PPT
Ufcw legal rights 2
PPT
Interpreting The Personnel General Records Schedule
PPTX
Grievance Committee Training Presentation
PPTX
The Interactive Process and Reasonable Accommodation of Disabled Workers
PPTX
High Times in HR: Duty to Accommodate Marijuana, Gender Identity & Day Care
PPTX
CONDUCTING A WORKPLACE INVESTIGATION
PPTX
Medical Marijuana in the Workplace
PPT
Grievance Procedures
Ufcw legal rights 2
Interpreting The Personnel General Records Schedule
Grievance Committee Training Presentation
The Interactive Process and Reasonable Accommodation of Disabled Workers
High Times in HR: Duty to Accommodate Marijuana, Gender Identity & Day Care
CONDUCTING A WORKPLACE INVESTIGATION
Medical Marijuana in the Workplace
Grievance Procedures

Viewers also liked (7)

PPT
Progressive Discipline Training _1[1]
PDF
Handling an employee grievance - 5 key steps for HR Directors and employers
PDF
New flexible working laws made easy - a guide for Employers, HR Directors
PPT
Grievance ppt
PPT
Grievance during disciplinary
PPT
Grievance Redressal
PPTX
Employee grievances..ppt
Progressive Discipline Training _1[1]
Handling an employee grievance - 5 key steps for HR Directors and employers
New flexible working laws made easy - a guide for Employers, HR Directors
Grievance ppt
Grievance during disciplinary
Grievance Redressal
Employee grievances..ppt
Ad

Similar to 007 Facebook Open Graph 相關開發簡單介紹 公開版 (8)

PDF
行動平台上利用Facebook API開發社群應用程式
PDF
墊子傷物facebook api
PPTX
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
PDF
API Survey #2 - Firebase realtime database
PPT
2009 Tw Oh Wretch Api
PDF
Swift girls 9th_teaching_meeting20171016
PDF
當PHP遇上Facebook API
PPTX
電子商務報告 Fb api使用與資料庫安全
行動平台上利用Facebook API開發社群應用程式
墊子傷物facebook api
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
API Survey #2 - Firebase realtime database
2009 Tw Oh Wretch Api
Swift girls 9th_teaching_meeting20171016
當PHP遇上Facebook API
電子商務報告 Fb api使用與資料庫安全
Ad

More from Bruce Li (15)

PDF
RSpec best practice - avoid using before and let
PDF
Unlock dependency between client teams and API team with API mock and proxy
PDF
Make your Rails console AWESOME (Ruby SG meetup 2016-03-29)
PDF
Refactoring Workshop (Rails Pacific 2014)
PDF
011 優化時間分配的 app 跟心得
PDF
Rails Code Club 3 @ Taipei
PDF
Rails Code Club 2 @ Taipei
PDF
010 Better and Better 工程師就業兩年多的心得雜談
PDF
009 增進效率的雜七雜八mac快速鍵與設定 part 2
PDF
008 vim超基礎入門
PDF
006 實作小玩具功能:chrome desktop notification
PDF
004 動機 單純的力量 讀書心得
PDF
003 Ruby小觀念與小技巧Part2
PDF
002 增進效率的有的沒的快速鍵與設定
PDF
001 Ruby小觀念與小技巧
RSpec best practice - avoid using before and let
Unlock dependency between client teams and API team with API mock and proxy
Make your Rails console AWESOME (Ruby SG meetup 2016-03-29)
Refactoring Workshop (Rails Pacific 2014)
011 優化時間分配的 app 跟心得
Rails Code Club 3 @ Taipei
Rails Code Club 2 @ Taipei
010 Better and Better 工程師就業兩年多的心得雜談
009 增進效率的雜七雜八mac快速鍵與設定 part 2
008 vim超基礎入門
006 實作小玩具功能:chrome desktop notification
004 動機 單純的力量 讀書心得
003 Ruby小觀念與小技巧Part2
002 增進效率的有的沒的快速鍵與設定
001 Ruby小觀念與小技巧

Recently uploaded (20)

PDF
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
PPTX
3分钟读懂伦敦大学学院毕业证UCL毕业证学历认证
PPTX
模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
PDF
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
PPTX
ONU and OLT from Baudcom Jenny training PPT
PPTX
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
PPTX
A Digital Transformation Methodology.pptx
PPTX
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
PPTX
3分钟读懂渥太华大学毕业证UO毕业证学历认证
PPTX
3分钟读懂圣安德鲁斯大学毕业证StAnd毕业证学历认证
PPTX
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
PPTX
3分钟读懂南威尔士大学毕业证UCB毕业证学历认证
PPTX
3分钟读懂伦敦政治经济学院毕业证LSE毕业证学历认证
PDF
01_Course_Introduction(20210916課後更新).pdf
PPTX
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
PPTX
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
PPTX
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
PPTX
3分钟读懂利物浦约翰摩尔大学毕业证LJMU毕业证学历认证
PPTX
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
3分钟读懂伦敦大学学院毕业证UCL毕业证学历认证
模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
ONU and OLT from Baudcom Jenny training PPT
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
A Digital Transformation Methodology.pptx
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
3分钟读懂渥太华大学毕业证UO毕业证学历认证
3分钟读懂圣安德鲁斯大学毕业证StAnd毕业证学历认证
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
3分钟读懂南威尔士大学毕业证UCB毕业证学历认证
3分钟读懂伦敦政治经济学院毕业证LSE毕业证学历认证
01_Course_Introduction(20210916課後更新).pdf
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
3分钟读懂利物浦约翰摩尔大学毕业证LJMU毕业证学历认证
3分钟读懂贵湖大学毕业证U of G毕业证学历认证

007 Facebook Open Graph 相關開發簡單介紹 公開版

  • 1. Open Graph API介紹 Bruce 2012/7/30 雲端線上科技股份有限公司 12年8月2日星期四
  • 2. Open Graph API介紹 很粗略&片段的介紹 請鞭小力⼀一點... (抖 Bruce 2012/7/30 雲端線上科技股份有限公司 12年8月2日星期四
  • 4. Open Graph是什麼 Open graph allows apps to model user activities based on actions and objects. 12年8月2日星期四
  • 5. Open Graph的組成 , eed ws Fr, ... e , Ne nte m elin p Ce :Ti ts, Ap 地方 ues 曝 光的, Req 可能 ations 各種 reg Agg Social Channels Actions and Objects Open Graph Mechanics issuing a HTTP POST to the user's /me/myapp:cook connection with the URL of the recipe object. 12年8月2日星期四
  • 6. Graph API是什麼 • access objects • 對objects進行CRUD 12年8月2日星期四
  • 7. Requests • 分為兩種 • User-generated requests • App-generated requests 12年8月2日星期四
  • 8. User-generated requests 的特性 • 必須透過dialog,由user按下確認才能發 • Only available for Canvas apps • 提示方式:紅色泡泡的notification • 發送對象: • 任何好友,無論有沒有裝app • 任何有裝該app的人,無論是否為朋友 12年8月2日星期四
  • 9. App-generated requests 的特性 • 呼叫Graph API 產生 • 提示方式: • bookmark的counter • App Center的request欄位(原本是Dashbaord) • 發送對象:有裝app的人 12年8月2日星期四
  • 10. signed_request 用途 格式 解讀 A signed_request parameter is used by Facebook to pass data to an application Facebook傳資訊給第三方App的方法 (實際上是⼀一個HTTP parameter) 12年8月2日星期四
  • 11. signed_request 用途 格式 解讀 FB Canvas app user (第⼀一次load) (iframe) GET /ooxx_app POST / 第三方APP params[:signed_request]=“vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9r jPSso.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0” 內含:user token, user info, ... 12年8月2日星期四
  • 12. signed_request 用途 格式 解讀 user 砍掉ooxx_app FB (不知道) 第三方APP 12年8月2日星期四
  • 13. signed_request 用途 格式 解讀 user 砍掉ooxx_app FB (不知道) POST / 第三方APP 嘿!某某user把你移除了喔 12年8月2日星期四
  • 14. signed_request 用途 格式 解讀 user 砍掉ooxx_app FB (不知道) POST / 第三方APP 嘿!某某user把你移除了喔 12年8月2日星期四
  • 15. signed_request 用途 格式 解讀 vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0 12年8月2日星期四
  • 16. signed_request 用途 格式 解讀 分隔用的 vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0 12年8月2日星期四
  • 17. signed_request 用途 格式 解讀 Base64url, hex encoded 分隔用的 HMAC SHA-256 signature 驗證身分用 vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0 12年8月2日星期四
  • 18. signed_request 用途 格式 解讀 Base64url, hex encoded 分隔用的 HMAC SHA-256 signature 驗證身分用 vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0 Base64url, hex encoded JSON 真正的內容 (payload) 12年8月2日星期四
  • 19. signed_request 用途 格式 解讀 Base64url, hex encoded 分隔用的 HMAC SHA-256 signature 驗證身分用 vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso.eyJhbG dvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0 Base64url, hex encoded JSON 真正的內容 (payload) 12年8月2日星期四
  • 20. signed_request 用途 格式 解讀 就是點.後面的那⼀一段 (尚未Base64 decode) <?php ... hash_hmac('sha256', $payload, $secret, $raw = true) ?> app secret key 算出來應該要跟點.的前面那段⼀一模⼀一樣 12年8月2日星期四
  • 21. signed_request 用途 格式 解讀 signature 就是點.後面的那⼀一段 (尚未Base64 decode) <?php ... hash_hmac('sha256', $payload, $secret, $raw = true) ?> app secret key 算出來應該要跟點.的前面那段⼀一模⼀一樣 12年8月2日星期四
  • 22. signed_request 用途 格式 解讀 • Base64url decode後就是JSON了 • 需注意Facebook省略了結尾的=,需要自 己補上 • 依照Base64的規格,要將字串長度補滿 成4的倍數 12年8月2日星期四
  • 23. signed_request 用途 格式 解讀 payload • Base64url decode後就是JSON了 • 需注意Facebook省略了結尾的=,需要自 己補上 • 依照Base64的規格,要將字串長度補滿 成4的倍數 12年8月2日星期四
  • 24. ruby的實作可參考: • http://stackoverflow.com/questions/ 4824035/is-there-a-facebook-credits-ruby- on-rails-gem-out-there-yet-or-ruby-version- of 12年8月2日星期四
  • 25. exchange user token (server-side) 必須是你app 的相關網址 如果授權還有效 這個dialog會略過 授權過期 的情境有... 12年8月2日星期四
  • 26. 按下notification後 會做哪些事? • 發含有signed_request的POST給app • app應該負責把用過的request刪除 12年8月2日星期四
  • 27. Page Tab App是啥 • 基本上還是Canvas app • 但製作好以後,可以裝在個人或專頁的 Timeline上 • 不過在各page上的Page Tab App似乎沒有 獨立的app id,所以跟純Canvas相比會有 更多限制 12年8月2日星期四
  • 29. 其他的 • When over 10 people have used your application, it will automatically be submitted to Facebook's search index • 用Graph API撈照片,不見能⼀一次撈完, 連續call幾次後,平均大概25張 12年8月2日星期四