Facebook实时更新:订阅页面

时间:2011-12-02 13:16:32

标签: facebook opengraph facebook-opengraph

有人试过订阅页面进行实时更新吗?我希望在页面的Feed下出现新的墙贴时收到通知。

Facebook文档说这是可能的,但从未见过有人在此之前完成此任务。

https://developers.facebook.com/docs/reference/api/realtime/

3 个答案:

答案 0 :(得分:3)

您需要获取page_accesstoken,然后将该应用添加为标签。你可以这样做 使用scope = manage_pages获取管理员的用户访问令牌 获得用户访问令牌后,您可以查询我/帐户。它会显示类似

的内容
  {
      "category": "Community", 
      "name": "page name", 
      "access_token": "xxxxx", 
      "id": "1111111134678999", 
      "perms": [
        "ADMINISTER", 
        "EDIT_PROFILE", 
        "CREATE_CONTENT", 
        "MODERATE_CONTENT", 
        "CREATE_ADS", 
        "BASIC_ADMIN"
      ]
    }

xxx将是页面访问令牌,使用页面访问令牌,您必须将应用程序添加为选项卡。你可以通过

来做到这一点

https://graph.facebook.com/PAGEID/tabs?app_id=APPID&method=POST&access_token=xxx

现在,只要页面发生变化,您就会收到回调网址的请求。该请求看起来像。

{
    "object": "page",
    "entry": [
        {
            "id": "408518775908252",
            "time": 1360643280,
            "changes": [
                {
                    "field": "feed",
                    "value": {
                        "item": "like",
                        "verb": "add",
                        "user_id": 5900878
                    }
                }
            ]
        }
    ]
}

希望这有帮助。

答案 1 :(得分:1)

从页面对象订阅实时更新后,您只会从已添加应用页面收到通知。

就像您只收到已经为您的应用程序授权的用户发送通知一样,将应用程序添加到页面作为选项卡相当于对您的应用程序进行authing的页面。

有关如何向网页添加应用的信息,请参阅https://developers.facebook.com/docs/appsonfacebook/pagetabs/

答案 2 :(得分:1)

试试这个:

try
{
  $me = $facebook->api('/me');
  $my_access_token = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=" .$fbconfig['appid'] ."&client_secret=" .$fbconfig['secret'] ."&type=client_cred"); 
  // SUBSCRIBE!   
  $subscribe = array( 'access_token'=> substr($my_access_token,13),
                      'object' => 'user',
                      'fields' => 'name,feed',
                      'callback_url' => $fbconfig['callback'], 
                      'verify_token' => $fbconfig['secret']);
  $subscribe = $facebook->api("/" .$fbconfig['appid'] ."/subscriptions", 'post', $subscribe);
  $parameters =  array("access_token" => substr($my_access_token,13) );
  $results = $facebook->api('/' .$fbconfig['appid'] .'/subscriptions', $parameters); 
}
catch (FacebookApiException $e)
{
  error_log($e);
}