5

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

本质上,当用户向他们的提要发布操作时,我成功地从 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);
   }
}

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

任何帮助是极大的赞赏。我真的需要一种方法来通过从发布更新的用户那里获取实际数据来完成实时更新。

4

1 回答 1

0

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

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

于 2013-05-22T23:08:38.903 回答