使用Facebook Graph Api搜索帖子

时间:2011-02-02 22:21:44

标签: php facebook facebook-graph-api news-feed

我想在过去30天的数据中使用图API搜索帖子(新闻Feed)?这样做的最佳做法是什么? Facebook Graph API是否有API限制来限制HTTP请求的请求?

6 个答案:

答案 0 :(得分:8)

注意:下列内容均不再适用。截至Facebook Graph API的2.3版本,已弃用搜索端点。

正在复制from here under "Searching"

  

搜索

     

您可以搜索所有公共对象   在社交图中   https://graph.facebook.com/search。该   格式是:

     

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

     

我们支持搜索以下内容   对象类型:

* 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
     

您还可以搜索个人   用户的新闻Feed,仅限于此   用户的朋友,通过添加q参数   到家庭连接网址:

* News Feed: https://graph.facebook.com/me/home?q=facebook

这是这样做的一种方式。但是,您最好的选择是FQL使用JavaScript SDKfb.dataquery method。您要做的是使用stream table获取用户的状态信息。

现在,根据您的问题,我了解您更喜欢使用PHP版本而不是Javascript版本。根据这个,你需要做的是解码(使用json_decode)这个url收到的json对象:

https://graph.facebook.com/[USERNAME/USERID]?fields=posts&access_token=[A VALID ACCESS TOKEN]

据我所知,这没有限制。但是,请查看docs here

答案 1 :(得分:3)

最好的方法是使用PHP的file_get_contents函数和该URL。

未能通过cURL获得相同的响应;请记住,任何响应都是JSON格式,因此请使用json_decode开始处理信息

典型的Facebook Feed应如下所示;

$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
}

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

答案 2 :(得分:0)

可以使用Graph API

完成

如文档中所述,将参数设置为30天后。 (从当前时间戳减去30天,即30 * 24 * 60 * 60将提供价值,或者也可以使用strtotime

并且,是的,Facebook platform policies中提到的API调用数量有限制,当前限制是:

〜(5M MAU):应用程序的500万经过身份验证的用户

〜(每天100M API调用

〜(每天50万次展示)。

答案 3 :(得分:0)

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

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

答案 4 :(得分:-1)

亲爱的,只需使用登录按钮或登录网址(如果是php sdk)获得用户的扩展许可,那么您只需要获取访问令牌,调用make json调用以获取您喜欢的任何信息。< / p>

<fb:login-button perms='read_stream' autologoutlink='true'></fb:login-button>

如果您有用户访问令牌,那么您只需调用此API的图表API即可。

$name=json_decode(file_get_contents('https://graph.facebook.com/USERID/feed?access_token='.Your ACCESS TOKEN));

它会返回你需要的东西。但请记住用您的用户ID替换

USERID
,并使用您的访问令牌替换
YOUR ACCESS TOKEN

答案 5 :(得分:-1)

您可以将此调用与图表资源管理器中的访问令牌结合使用,其中数字代表page ID

123123123123123?fields=posts.limit(5)