使用Facebook Graph Api搜索帖子

4

我希望使用图形API搜索过去30天的帖子(新闻提要)?最佳实践是什么?Facebook Graph API是否有API限制来限制HTTP请求的请求?

6个回答

8
注意:以下内容已经失效。自Facebook Graph API 2.3版本起,搜索端点已被弃用。
复制从这里开始到"Searching"下面

Searching

You can search over all public objects in the social graph with https://graph.facebook.com/search. The format is:

https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE

We support search for the following types of objects:

* All public posts: https://graph.facebook.com/search?q=watermelon&type=post
* People: https://graph.facebook.com/search?q=mark&type=user
* Pages: https://graph.facebook.com/search?q=platform&type=page
* Events: https://graph.facebook.com/search?q=conference&type=event
* Groups: https://graph.facebook.com/search?q=programming&type=group
* Places: https://graph.facebook.com/search?q=coffee&type=place&center=37.76,122.427&distance=1000
* Checkins: https://graph.facebook.com/search?type=checkin

You can also search an individual user's News Feed, restricted to that user's friends, by adding a q argument to the home connection URL:

* News Feed: https://graph.facebook.com/me/home?q=facebook
这是一种方法。但更好的选择是使用 FQL,它由JavaScript SDK使用,使用fb.dataquery方法。你需要做的是使用stream表来获取用户的状态帖子。
现在,根据您的问题,我了解到您更喜欢使用PHP版本而不是Javascript版本。因此,您需要解码(使用json_decode)通过此url接收到的json对象。
https://graph.facebook.com/[USERNAME/USERID]?fields=posts&access_token=[A VALID ACCESS TOKEN]

据我所知,这应该没有限制。但是,请查看此处的文档

Facebook 发生了很多变化。许多功能在 v2.3 中已不再支持!! - iamprem

3

最好的方法是使用PHP的file_get_contents函数来获取该URL。

如果无法使用此方法,则可以使用cURL获得相同的响应;只需记住任何响应都是JSON格式,因此请使用json_decode开始处理信息。

典型的Facebook供稿应如下:

$feedurl = "https://graph.facebook.com/$user_id/feed?access_token=$valid_access_token";
$feed = file_get_contents($feedurl);
$feed = json_decode($feed);
foreach ($feed->data as $post){
     //process each post
}

据我所见,Facebook没有特定的方法来搜索页面或用户的新闻动态;但可以通过他们的搜索API搜索Facebook。 https://developers.facebook.com/docs/reference/api/


0

可以使用Graph API完成。

如文档所述,将since参数设置为30天前。(从当前时间戳减去30天即可获得该值,也可以使用strtotime)

是的,API调用次数有限制,如Facebook平台政策所述,当前限制为:

~(5M MAU):应用程序的500万认证用户

~(每天100M个API调用)

~(每天5000万次印象)。


Facebook API的限制是虚假的,那些只是“软”限制。实际上,整个应用程序的硬性限制远低于这些限制。 - Henley

0

2016年8月17日起,FQL将不再可用且无法查询...

我不知道为什么Facebook要改变整个SDK/API而不是更新它。


-1

您可以使用来自图形浏览器的访问令牌进行此调用,其中该数字代表一个 页面 ID

123123123123123?fields=posts.limit(5)

-1
亲爱的,只需通过登陆按钮或登陆URL(在php sdk的情况下)从用户那里获得扩展权限,然后您只需要获取访问令牌,调用一个JSON调用以获取任何您喜欢的信息。
<fb:login-button perms='read_stream' autologoutlink='true'></fb:login-button>
如果您已经为用户获取了访问令牌,那么您只需调用图形API即可: $name=json_decode(file_get_contents('https://graph.facebook.com/USERID/feed?access_token='.YOUR ACCESS TOKEN));
它会返回您所需要的内容。但请记住替换“USERID”为您的用户ID,“YOUR ACCESS TOKEN”为您的访问令牌。

@TomGranot-Scalosub 我该怎么做? - Awais Qarni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接