Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to subscribe to real-time updates for a Facebook page's wall

Facebook's real-time updates docs now say that you can get the feed for a page:

You can subscribe to the page's feed in the same way you subscribe to a user's feed - the subscription topic should be 'user' and the subscription field should be 'feed'

My understanding of this is that I need to post to the graph API to subscribe as such:

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

(This is a bash script.) Here $CALLBACKURL is set up correctly following their example code. (At least I think it's correct -- I can successfully add subscriptions with it.) The $OAUTHTOKEN is the one for my Facebook App.
And the $PAGEID is the facebook object id of the page I'd like to get realtime updates for.

When I do this, the call appears to work -- no error message. My callback gets called. But I certainly don't get notified when something happens on the page's feed.

So what's missing? Does the page need to install the app whose oauth token I'm using? Or do I somehow need to get an oauth token for the page itself by logging in as the page?

like image 292
Leopd Avatar asked Sep 09 '11 22:09

Leopd


3 Answers

I do not know if this can help you but I'll tell you where I am for real-time update page feed:

(permissions : manage_page,offline_access,read_stream)

  1. your application must be linked to the page (then install the application but not required to have a tab ex. create tab https://graph.facebook.com/PAGE_ID/tabs?app_id=APP_ID&method=POST&access_token=PAGE_ACCESS_TOKEN and delete tab 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. Subscription: to subscribe must be like a "user" and therefore object = user fields = feed but you have to add new fields because otherwise it receives the comments and likes the wall so you must add "status" in order to receive the articles posted (my problem is to get other content such as links I have managed to add "link" as fields but I am not receiving notifications when a link is posted)

    $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

my English is not very good but I hope it will help you, on my side I'm still looking for really all updates to the wall (links, video ...)

like image 162
Caroline Craipeau Avatar answered Nov 05 '22 13:11

Caroline Craipeau


I have been researching on this and i am getting the pushes for pages too.

  1. while subscribing make sure that object = user and fields = feed, status is present.

  2. Make sure that application is added to your page, then only you will receive the update.

  3. Response received from facebook is as below :-

{"entry":[{"id":"*******","uid":"*****","time":1332940650,"changed_fields":["status"]}],"object":"user"}

where **** is my pageId.

The above push is received on adding a new post , as you can see the changed_feild is status , but when we post on wall the changed_fields comes as feed. Below link helped me in receiving pushes for the page.

http://bugs.developers.facebook.net/show_bug.cgi?id=18048

like image 22
Sanket Avatar answered Nov 05 '22 12:11

Sanket


Firstly, subscription to real-time update for page/feed doesn't work. See: http://bugs.developers.facebook.net/show_bug.cgi?id=18048

Does the page need to install the app whose oauth token I'm using?

Yes

Or do I somehow need to get an oauth token for the page itself by logging in as the page?

If i correctly understand you, you need only app access_token https://graph.facebook.com/oauth/access_token?client_id=your_app_id&client_secret=your_secret&grant_type=client_credentials

like image 3
Zhandos Zhandos Ulanuly Avatar answered Nov 05 '22 13:11

Zhandos Zhandos Ulanuly