> 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中文网其他相关文章!