实时更新后获取数据

时间:2013-02-20 19:51:32

标签: php facebook real-time

我有一个可以访问用户Feed的应用程序。 我按照本教程为应用程序设置了实时更新: http://developers.facebook.com/docs/reference/api/realtime/

基本上当用户向他们的Feed发布操作时,我成功地从Facebook收到了我的回叫链接信息。信息如下:

{"object":"user","entry":[{"uid":"629498222","id":"629498222","time":1361371026,"changed_fields":["feed"]}]}

我的麻烦从那里开始。我读过的关于实时更新的每个教程都完全正确,但没有真正解释如何获取更新的真实数据。

所以我正在尝试各种各样的事情,特别是下面的代码,以获取用户的提要,以便我可以访问最新的帖子。这是我的回调php文件:

 $app_token_url = 'https://graph.facebook.com/oauth/access_token?client_id='
               .$app_id.'&client_secret='.$app_secret
               .'&grant_type=client_credentials';
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $app_token_url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $res = curl_exec($ch);
 parse_str($res, $token);

 if (isset($token['access_token'])) {
  curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/629498222/feed'
                              .'?access_token='
                              .$token['access_token']);
   $res = curl_exec($ch);
   if ($res && $res != 'null') {
     print_r($res);
   }
}

结果与预期不符。我收到该用户的帖子,但前提是他们是公开的。即使应用程序可以访问用户流,我也不会收到该用户的所有帖子。知道为什么吗?

非常感谢任何帮助。我真的需要一种方法来通过从发布更新的用户获取实际数据来完成实时更新。

1 个答案:

答案 0 :(得分:0)

实时服务的主要目的是让应用程序知道它们缓存的数据何时过时并且应该刷新。它并非旨在成为“内容订阅”服务。

因此,当您收到通知时,您可能会单独调用更新的信息(例如,当用户下次登录时)。特别是对于从用户的流中读取,可能是未授予app令牌的read_stream权限,尽管我找不到任何确定的文档来确认。我找到的最接近的是本页底部的“应用访问令牌的其他功能”https://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/