Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Facebook's "See first" subscription through API / plugin / trick?

Facebook's "See First" feature enables users to reorder their feeds, in a way, that the posts of a specific page or person appears on top of their News Feed. This is an extra optional feature of following after subscription.

Screenshot of Facebook's See First" feature

(This button becomes available after following a user / a page.)


After seeing Facebook's approaches with the follow button and the page plugin I still did not find this feature to be enabled in any way outside Facebook.

I am looking for any way to place this feature using the PHP, or JS SDK or with some iframe approach like the page plugin.

Indirect / tricky ways are also appreciated.


Why do I assume there might be a tricky way to achieve this, even though it is not exposed in the Graph API?

Facebook has approaches to give users full featured GUI-s outside Facebook. i.e.: The share method in the SDK provides users a full featured popup interface, where they can set the "who can see" permissions, even though changing share permissions is not an action achievable with any API.
I could easily imagine that there is a hidden/tricky way like this in some plugin or API outside Facebook.

like image 705
István Pálinkás Avatar asked Jul 17 '15 13:07

István Pálinkás


3 Answers

Graph Api 2.0+ is very restrictive and does not let you emulate a user's actions. The particular example of selecting "SEE FIRST" is a user action of altering preferences in edge rank algorithm to render his newsfeed. As per docs of graph api 2.3/2.4, there does not seem any way of achieving this with a graph api call or plugin.

like image 93
DhruvPathak Avatar answered Nov 05 '22 18:11

DhruvPathak


That's simply not possible because this functionality is not exposed via the Graph API.

like image 26
Tobi Avatar answered Nov 05 '22 16:11

Tobi


The Facebook 2.0 API is extremely restrictive (it's not cool, I know). They don't allow you to. If you really require this you can create a browser emulator, however this is against Facebook policies and they might get a little upset (the idea is: they restrict the API -> people have to use their website/apps -> they make more $$ from their ads)

Separate projects have been created to get around this issue. For example, the chat api has been removed. So this project has arisen: https://github.com/Schmavery/facebook-chat-api - there are plenty more like it.

Most things on Facebook use an ajax request. For example, to delete a thread a request is made to https://www.facebook.com/ajax/mercury/delete_thread.php along with a cookie, csrf information, and other bits and bobs.

For what you're trying to do you will want to make a POST request to https://www.facebook.com/feed/profile/sub_follow/ with similar data:

id=...&action=see_first&location=1&nctr[_mod]=pagelet_timeline_profile_actions&__user=...

Otherwise there is no other way. However for several projects I've had to do it like this, it's not cool having to store passwords so make sure you're clear with your end users about that. Only do it if it's 100% necessary!

like image 4
Mark Hughes Avatar answered Nov 05 '22 17:11

Mark Hughes