如何订阅Facebook页面墙的实时更新

Leo*_*opd 15 facebook real-time facebook-graph-api

Facebook的实时更新文档现在说您可以获取页面的订阅源:

您可以按订阅用户Feed的相同方式订阅页面的订阅源 - 订阅主题应为"用户",订阅字段应为"Feed"

我对此的理解是,我需要发布图API以便订阅:

curl -d \
"object=user&fields=feed&callback_url=$CALLBACKURL&verify_token=$SECRET" \
"https://graph.facebook.com/$PAGEID/subscriptions?access_token=$OAUTHTOKEN"
Run Code Online (Sandbox Code Playgroud)

(这是一个bash脚本.)$CALLBACKURL按照示例代码正确设置.(至少我认为这是正确的 - 我可以成功添加订阅.)这$OAUTHTOKEN是我的Facebook应用程序.
$PAGEID是我想要获得实时更新的页面的facebook对象ID.

当我这样做时,呼叫似乎工作 - 没有错误消息.我的回调被调用了.但是当我在页面的Feed上发生某些事情时,我当然不会得到通知.

那么缺少什么?页面是否需要安装我正在使用其oauth令牌的应用程序?或者我是否需要通过以页面身份登录来获取页面本身的oauth令牌?

小智 17

我不知道这是否可以帮到你,但我会告诉你我在哪里用于实时更新页面提要:

(权限:manage_page,offline_access,read_stream)

  1. 您的应用程序必须链接到页面(然后安装应用程序,但不要求有一个选项卡ex.创建选项卡https://graph.facebook.com/PAGE_ID/tabs?app_id=APP_ID&method=POST&access_token=PAGE_ACCESS_TOKEN并删除选项卡TAB_ID = PAGE_ID.'/ tabs/app _'.APP_ID; https://graph.facebook.com/TAB_ID?method=DELETE&access_token=PAGE_ACCESS_TOKEN)

    
    function page_access_token($page_id,$access_token){
    $page_token_url="https://graph.facebook.com/" . $page_id . "?fields=access_token&" . $access_token; $response = file_get_contents($page_token_url); $resp_obj = json_decode($response,true); $page_access_token = $resp_obj['access_token']; return $page_access_token; }

    function page_tabs_create($page_id,$app_id,$page_access_token){

    $page_settings_url = "https://graph.facebook.com/" . $page_id . "/tabs?app_id=".$app_id."&method=POST&access_token=" . $page_access_token; $response = file_get_contents($page_settings_url); $resp_obj = json_decode($response,true); return $resp_obj; }

    function page_tabs_delete($tab_id,$page_access_token){

    $page_settings_url = "https://graph.facebook.com/".$tab_id."?method=DELETE&access_token=" . $page_access_token; $response = file_get_contents($page_settings_url); $resp_obj = json_decode($response,true);

    return $resp_obj; }

  2. 订阅:订阅必须像"用户",因此对象=用户字段= Feed但您必须添加新字段,否则它会收到评论并喜欢墙,因此您必须添加"状态"才能接收发布的文章(我的问题是获取其他内容,例如我设法添加"链接"作为字段的链接,但是我没有在发布链接时收到通知)

    $ param = array('access_token'=> $ access_token,'object'=>'user','fields'=>'feed,status,link''callback_url'=>'http://********fbcallback.php''verify_token'=>'***********','include_values'=>'true');

    POST https://graph.facebook.com/APP_ID/subscriptions

我的英语不是很好,但我希望它会帮助你,在我身边我仍然在寻找真正的所有墙壁更新(链接,视频...)


DSc*_*ltz 1

为此,您需要设置一个端点 URL,用于接收来自 Facebook 的 HTTP GET(用于订阅验证)和 POST(用于实际更改数据)请求。

然后,您应该向图形 API url 发送 POSThttps://graph.facebook.com/<app-id>/subscriptions?access_token=<access_token>来订阅,并准备好处理验证请求。

然后,要列出订阅,只需在同一 url 上执行 GET 请求即可https://graph.facebook.com/<app-id>/subscriptions?access_token=<access_token>,该请求会返回列出您的订阅的 JSON 编码内容,每个对象类型最多一个。