SlideShare a Scribd company logo
1 of 29
Download to read offline
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

Viewers also liked

Progressive Discipline Training _1[1]
Progressive Discipline Training _1[1]Progressive Discipline Training _1[1]
Progressive Discipline Training _1[1]Arthur Holly Jr
 
Handling an employee grievance - 5 key steps for HR Directors and employers
Handling an employee grievance - 5 key steps for HR Directors and employersHandling an employee grievance - 5 key steps for HR Directors and employers
Handling an employee grievance - 5 key steps for HR Directors and employersThe Legal Partners
 
New flexible working laws made easy - a guide for Employers, HR Directors
New flexible working laws made easy - a guide for Employers, HR DirectorsNew flexible working laws made easy - a guide for Employers, HR Directors
New flexible working laws made easy - a guide for Employers, HR DirectorsThe Legal Partners
 
Grievance during disciplinary
Grievance during disciplinaryGrievance during disciplinary
Grievance during disciplinarySheila A
 

Viewers also liked (7)

Progressive Discipline Training _1[1]
Progressive Discipline Training _1[1]Progressive Discipline Training _1[1]
Progressive Discipline Training _1[1]
 
Handling an employee grievance - 5 key steps for HR Directors and employers
Handling an employee grievance - 5 key steps for HR Directors and employersHandling an employee grievance - 5 key steps for HR Directors and employers
Handling an employee grievance - 5 key steps for HR Directors and employers
 
New flexible working laws made easy - a guide for Employers, HR Directors
New flexible working laws made easy - a guide for Employers, HR DirectorsNew flexible working laws made easy - a guide for Employers, HR Directors
New flexible working laws made easy - a guide for Employers, HR Directors
 
Grievance ppt
Grievance pptGrievance ppt
Grievance ppt
 
Grievance during disciplinary
Grievance during disciplinaryGrievance during disciplinary
Grievance during disciplinary
 
Grievance Redressal
Grievance RedressalGrievance Redressal
Grievance Redressal
 
Employee grievances..ppt
Employee      grievances..pptEmployee      grievances..ppt
Employee grievances..ppt
 

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

Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 
Android vs e pub
Android vs e pubAndroid vs e pub
Android vs e pub永昇 陳
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现hua qiu
 
Spry框架的简单使用小结
Spry框架的简单使用小结Spry框架的简单使用小结
Spry框架的简单使用小结sunnylqm
 
iOS开发常用库推荐之一@techparty
iOS开发常用库推荐之一@techpartyiOS开发常用库推荐之一@techparty
iOS开发常用库推荐之一@techpartyGump Law
 
LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享William Chong
 
API 文件大亂鬥 @ MOPCON 2013
API 文件大亂鬥 @ MOPCON 2013API 文件大亂鬥 @ MOPCON 2013
API 文件大亂鬥 @ MOPCON 2013Chun-Yu Tseng
 

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

Sourcemap
SourcemapSourcemap
Sourcemap
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
Android vs e pub
Android vs e pubAndroid vs e pub
Android vs e pub
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
 
Spry框架的简单使用小结
Spry框架的简单使用小结Spry框架的简单使用小结
Spry框架的简单使用小结
 
iOS开发常用库推荐之一@techparty
iOS开发常用库推荐之一@techpartyiOS开发常用库推荐之一@techparty
iOS开发常用库推荐之一@techparty
 
LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享LikeCoin SDK 及 API 分享
LikeCoin SDK 及 API 分享
 
API 文件大亂鬥 @ MOPCON 2013
API 文件大亂鬥 @ MOPCON 2013API 文件大亂鬥 @ MOPCON 2013
API 文件大亂鬥 @ MOPCON 2013
 

More from Bruce Li

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

More from Bruce Li (15)

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

Recently uploaded

布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书kathrynalvarez364
 
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制kathrynalvarez364
 
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制bairnshajjes
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单jakepaige317
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书kathrynalvarez364
 
Grade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptxGrade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptxPriscilleXu
 
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...黑客 接单【TG/微信qoqoqdqd】
 

Recently uploaded (7)

布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
 
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
哪里可以购买日本神奈川县立保健福祉大学学位记/录取通知书可以制作吗/补办马来西亚大学文凭/CIA证书定制
 
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
加急代办一个日本鹿儿岛纯心女子大学学位记🌈学习成绩单电子版定制🌈仿制荷兰大学毕业证🌈日语JLPT证书定制
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
 
Grade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptxGrade 6 Lesson 7 Environment Protection.pptx
Grade 6 Lesson 7 Environment Protection.pptx
 
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
我了解到黑客在某些领域拥有卓越的技术能力,特别是在处理系统漏洞方面。在当前的情境下,如果我想要改变我的毕业成绩,他们的帮助或许是我唯一可行的选择。【微 t...
 

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日星期四