> 2011年12月,Facebook正式棄用了其REST API,並啟動了圖形API供公眾使用。從那時起,所有新功能都已添加到圖形API中,Facebook使用戶能夠執行大量新事物,其中一些我們將在今天討論。在這篇文章中,我們將向圖API提出很多請求,收到JSON響應,從而操縱它們以獲取我們所需的結果。
鑰匙要點>
a令牌與Facebook應用程序相關聯,以處理用戶授予該應用程序的權限。這定義了可以通過訪問令牌訪問的資源。因此,令牌提供了臨時可靠的訪問Facebook。您可以從Graph Explorer獲得訪問令牌。代幣可能會或可能沒有外部時間,具體取決於它們是短期還是長期令牌。短期令牌到期後,您需要重新認證用戶並獲得新的令牌。通過Facebook頁面競爭
通常的競賽涉及在頁面上發布有關體驗的照片或段落。根據帖子或照片上的“贊”數量來判斷比賽。參加比賽還有額外的條件。為了使“喜歡”有效,用戶也需要喜歡該頁面。 Facebook沒有任何內置功能,可以告訴您您的帖子和頁面共有多少個喜歡。這使得判斷比賽很困難。
>非程序員會覺得判斷比賽的唯一方法是交叉檢查喜歡的數量。幸運的是,圖API可以幫助我們執行此操作而不會麻煩。
>儘管我將通過python執行操作,但其他語言的過程仍然相同。重要的部分是我們將請求發送到收到的JSON的目標URL和數據。
。>從概念上講,這樣做的一種簡單的方法是在帖子和頁面上的喜歡列表中獲取喜歡的列表,然後對其進行比較。但是,截至目前,Facebook中沒有功能可以在頁面上獲得喜歡的列表。我們將使用反向過程來檢查每個帖子上的每個類別是否也喜歡該頁面。
>>以下呼叫檢查用戶是否喜歡頁面。詳細的文檔可在此處找到。
GET <span>/{user-id}/likes/{page-id}</span>
如果用戶喜歡該頁面,則JSON響應包含有關頁面的數據,但是如果用戶不喜歡該頁面,則會收到一個空數據。我們使用以下功能來確定用戶是否喜歡頁面。
><span>def user_likes_page(user_id, page_id): </span> <span>""" </span><span> Returns whether a user likes a page </span><span> """ </span> url <span>= 'https://graph.facebook.com/%d/likes/%d/' % (user_id, page_id) </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get(url, params = parameters) </span> result <span>= json.loads(r.text) </span> <span>if result['data']: </span> <span>return True </span> <span>else: </span> <span>return False</span>
>下一步是獲取對特定帖子的喜歡列表,並找出用戶是否也喜歡該頁面。以下電話給了我們帖子喜歡的列表,只要我們有適當的訪問權限。
GET <span>/{post-id}/likes/</span>結合兩個想法,我們發揮以下功能,以檢查頁面上的帖子中有多少個喜歡的功能。
>
<span>def get_common_likes(post_id, page_id): </span> <span>""" </span><span> Returns the number of likes common to a post and the page </span><span> """ </span> count_likes <span>= 0 </span> url <span>= 'https://graph.facebook.com/%d/likes/' % post_id </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get(url, params = parameters) </span> result <span>= json.loads(r.text) </span> <span>for like in result['data']: </span> <span>if user_likes_page(int(like['id']), page_id): </span> count_likes <span>+= 1 </span> <span>print 1 </span> <span>return count_likes</span>質量響應您的時間表上的帖子
>
獲得用戶或頁面提要的呼叫如下。如果您想在時間軸上獲取帖子,則可以用“ me”替換{user-id},這使得過程看起來更容易。為了操縱成千上萬的帖子,您將無法將它們放在單頁中。您需要向前邁出一步,並檢查JSON響應中的下一個URL。
>GET <span>/{user-id}/feed</span>獲得時間表上所有帖子的函數如下。
>
下一步是在您的時間軸上發布評論。用於執行此操作的呼叫如下。
><span>def get_posts(): </span> <span>""" </span><span> Returns the list of posts on my timeline </span><span> """ </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get('https://graph.facebook.com/me/feed', params=parameters) </span> result <span>= json.loads(r.text) </span> <span>return result['data']</span>
應在上面的郵政請求中發送評論作為消息。因此,我們用來對帖子發表評論的功能如下。
>POST <span>/{object-id}/comments</span>
>我為這兩種腳本都可以在github上找到。此外,您可以同時提出多個API請求,將其更進一步。
>> akshit khurana在Quora上,通過使用Facebook查詢語言(FQL)討論了另一種方法。 FQL是一種類似SQL的語言,可讓您查詢通過圖API收到的數據。有一個表的列表,每個列表都有自己的列列表可以查詢,從而幫助您過濾數據。
>經常詢問有關Facebook Graph API
的問題(常見問題解答)如何使用Facebook Graph API?
使用Facebook Graph API? Graph API為開發人員提供了一種強大的工具,可以在Facebook上訪問和操縱廣泛的數據。它使您可以將應用程序或網站與Facebook集成到其數十億用戶。您可以通過API讀取,編寫和更新Facebook對象,使其成為社交媒體集成的多功能工具。
>如何處理Facebook Graph API中的錯誤?
>如何測試我的Facebook Graph api請求?
>我可以使用Facebook Graph API從Facebook頁面訪問數據?
如何通過Facebook Graph API中的結果?通過結果。這意味著每個響應都包含一個“下一個”和“以前”光標,您可以用來瀏覽結果。您可以使用“ limit”參數指定每個頁面的結果數。
>以上是您可以使用Facebook Graph API做的2件事的詳細內容。更多資訊請關注PHP中文網其他相關文章!