Wall content on my website - facebook

What I want is to be able to put the wall content of my facebook page in my website. I want to include the posts and comments of others and mines.
I have 2 questions:
Activity feed:
Here is what the FB docs say :
<fb:activity
site="jerrycain.com"
action="critiqueapp:despise,critiqueapp:review,critiqueapp:grade">
</fb:activity>
Where can I get a list of all possible actions? Can I specify that I want posts and comments?
OpenGraph:
I was able to get an access token yesterday, that is not valid anymore. I was able to see a json object of the wall content. What is the best way to have this permanently?

Activity feed social plugin is using OpenGraph actions in action field so the complete list is simply not available due to possibility to create custom actions for every application, there is several Built-in Action Types:
Watch - Video, Movie, TV Show, or TV Episode
Read - Article
Currently specifying like also works but it's not documented. Aside of those pre-defined actions you may Define Actions. Neither posts or comments is listed as supported actions in documentation.
Access tokens are expired and need to be extended if you need longer life-time of a token. Also you may use application access_token to access public posts from your page (without need to get the token from user)...

Related

Facebook api supports saved items?

Does the Facebook api allow you to pull the information from saved articles on Facebook to download and read it in another app?
No, not anymore. It used to be accessible until early 2016.
See also: Facebook API to read bookmarked items.
As for a manual solution, see Scrape your Facebook saved links ( scroll to the bottom of the list, paste a js to console → it generates a text list of urls). I'd guess one ccould automate that further, via a headless browser instance.
As of now they don't have an api for saved items. Read this techcrunch post for more details .
I’ve asked Facebook whether websites and Page admins will get
analytics on how often they’re Saved, which could help refine their
content and promotion strategies, and better understand what to share
on Facebook. It tells me “Not at this time.” There are currently no
plans for an API or external Save button that developers could use to
let people add to their Saved list from outside of Facebook. You also
can’t natively export from Save to other read-it-later apps, which
would be nice.

If Facebook Feed dialog is deprecated, how are you to share posts on Facebook?

I have been working on a Facebook app for some time, and we are having trouble getting the app approved. I feel like Facebook's app approval process is a constantly moving target and their explanations are provide the least amount of detail possible, leaving the door open for further rejections.
We are using a Facebook app to provide sharing functionality for products that are behind a paywall. All of our share buttons are custom, so they fit in our designs (we don't want to use the out of the box buttons). We first built the app attempting to use the recommended share dialog with open graph actions and stories. The problem here is that you can only use the share dialog with a shared link. Facebook reads any open graph tags on the page to provide sharing information, but because there are many different "products" on a given page, we can't use open graph tags. Because of our environment, we couldn't use the actions or stories. Furthermore, we'd like to customize that share information, so using share dialog is not an option.
Unfortunately, we had left our open graph stories and actions in our app when we first attempted approval. In our first denial, Facebook told us that we had implemented our open graph actions and stories incorrectly. We were not using the share dialog, but the 'feed' method, which is deprecated in 2.0 but still works. Thinking that Facebook looked at our app and noticed we were not using those actions correctly, we figured if we removed those stories and actions from the app, Facebook would see our share method worked and approve us. Wrong.
We had built the share using the publish_actions permission, along with FB.login() and FB.ui(). Facebook denied us because our app did not need publish_actions. They recommended we use the share dialog which did not need login or permissions.
We removed the publish_actions permission and FB.login(). When we tested this, you could still login to Facebook and perform the share WITHOUT fb.login(). So we thought it was good to go. It was not; Facebook told us we needed to implement login(), even thought the docs say you don't need it.
Now we have reimplemented login() and are going to try to get it approved again, but I have a feeling it's going to get rejected due to the 'feed' method being deprecated.
So my questions are:
A) If you have a website providing a paid service, how do you allow your users to post to their feeds, using the newer share method, with data you'd like? Eg: "I just completed the Get Moving III workout at teamexos.com!" The post would contain no pics or links. If it had to, a link to teamexos.com would be ok.
B) How do paid sites provide open graph actions and stories? Do they have public links to their products? Do those products have their own individual pages, with their own open graph tags?
First of all, the feed dialog is not deprecated, at least not anymore. You do not need to get anything approved for it, and you certainly don´t need login: https://developers.facebook.com/docs/sharing/reference/feed-dialog/
But: Your example looks like an Open Graph story, you should consider taking a look at those: https://developers.facebook.com/docs/sharing/opengraph

The appropriate usage of the API : `/me/taggable_friends`

With v2.0 in effect, the API /me/friends is now limited to the list of friends that have authorized our app. So, this wont help if I need the complete list of my friends.
But facebook also have added a new API /me/taggable_friends that we can use in order to generate stories that have friends tagged in them, even those friends don't use our app. And if we want to use the taggable friends API, the app will require review.
So, before sending for review I want to make sure that will my app be approved or not? I'm confused since-
the documentation says-
use in order to generate stories that have friends tagged in them;
this answer by facebook product manager mentioned that-
should only be used for the case where you're rendering a list of friends in order to let the user tag them in a post
So I want to know in which scenarios we can use this API that complies with its rules and will be approved when sent for review. For using the OG Actions, of-course it will work (also mentioned in the doc), but will it be approved if-
the an app is just displaying the list the friends and their profile pics. No story, nothing; or
if an app is uploading a photo using /me/photos and tagging the selected friends using the tags parameter. (there's no info of tags parameter in the documentation of /me/photos but it exists).
I'm just asking this to make sure that it will be approved or not before making too many changes.
The guidelines for OG tagging can be found here:
https://developers.facebook.com/docs/opengraph/submission-process#actioncapabilities-actiontagging
Without the context of your action is hard to say if it's acceptable without the user seeing the story and understanding the situation. If you had a bowling app that allowed people to tag their friends while they were all bowling together And no configurable story and the story generated was something like "Bowling with XXX". I think that would be acceptable...
Attaching a story to your OG Story would be another capability as part of Story configuration. Tags would apply to the OG story and the photo.
If you want to upload a photo outside of the OG story you need to look at Photo Upload permissions.

Maintaining continuity of a Facebook post from website to Facebook

I am building a social application, users post data to the website, which is saved in our database.
This creates a record on the site, which is searchable and creates the basic content and function of the site (the purpose is not relevant at this point)
When a record is saved to our database, I want to "spread the word" and send this data out to social networks. Currently, I'm looking at Facebook in isolation.
So, I know how to create a post through the Graph API and post this content to the users Timeline, or indeed to a business page associated with the APP/Website.. but I am not sure how, or if indeed one should, maintain continuity.
What I mean... if a user creates a record on my website, and then the website/App creates a post on my business page, and also asks the user to post it in their Timeline, how do I stop this being two separate posts, and instead one post which has been shared?
I want to achieve:
User posts on website
>
Website posts to Page
>
Post on Page is "Shared" to users Timeline
As opposed to:
User posts on website
>
Website posts to Page
>
Website posts an additional post to users Timeline
The reason I want to do this, is that on the website, I want to be able to show shares, likes and comments from Facebook by tracking the ID of the initial post created when first entered onto my website.
Or am I trying to reinvent the wheel and should just use Facebook's comment plugin?
When you create the post on facebook on the Page, store the returned post ID in your data model.
From what I can tell, there is no way to access the normal user share directly through the API. If you insist on doing it programmatically without popping up any dialog for your user, you can make a post to the user's page which has (the start of) the Page post and a linkback to the Page post as an attachment. This is probably to prevent abuse.
However, if you don't mind relying on an undocumented and deprecated endpoint, you can use the old sharer.php endpoint, so long as you have a fully qualified link to the post you want to share (you can retrieve the url through the api). This will also require your user to enter anything appropriate in their share and then click "share."
The endpoint is
http://www.facebook.com/sharer.php
Call it with the u parameter filled in with the url, so
http://www.facebook.com/sharer.php?u=[URL encoded URL of the post you wanted to call]
You can try this with any facebook post (go to a post, copy the url, past in as the parameter), it's still working (I just tried it) but there are no guarantees. See the top answer to Facebook API: "Share" a post already posted on a page's wall?.
You can still access likes, comments, etc for that post id through the Graph API (and you can provide your users a direct link to the post). Cache/update them as recommended and display them on your own page. You are basically mirroring back onto your own site what is happening on facebook in regards to the post you made.
I would go this route especially if you are at all planning on branching into other services. That way you can do an aggregated display of statistics/likes/etc from the multiple services you are having your platform repost to. This is also good for (at least an impression of) data integrity for your users: they know that your service represents everything they have done in case anything happens to their facebook/etc accounts.
This could especially be noteworthy if they are worried about facebook/etc deleting any of their posts, or for recovering from any issues where a post/comment/etc is not properly stored by facebook/etc (for example, comments have a maximum length which, at least via the main FB UI, silently drops anything above the maximum length in a non recoverable way for the user).

Editing a User's Likes on Facebook

I've been looking at the Facebook API to find some way to edit a user's Likes (that is, add or remove items from https://graph.facebook.com/me/likes/). The API doesn't say anything about it specifically, but does say this:
You can publish to the Facebook graph by issuing HTTP POST requests to the appropriate connection URLs above.
Where above, one of the connection URLs is the aforementioned https://graph.facebook.com/me/likes link. However, there's no documentation for the PROFILE_ID/likes post, and whenever I try to post it returns the error "invalid post_id".
I assume this is because to like something, you post a request to POST_ID/likes. It's a bit inconsistent. What I'm trying to do is get the user's profile to add a Page to their likes (by posting using the page's id as an "id" parameter in the post body). However, it seems like there's just no way to edit user's likes.
At the end of the day, I just want to allow a user to click a button in my application (mobile device application, not a web app) and have them add our Facebook page into their list of pages, and I've found no way of doing that short of presenting our page to them and making them click on the "Like" button manually. Many other things are supported without showing the Facebook website, like posting to their wall or making albums, but I can't find anything to do this.
Any ideas?
Looks like I can't. Not in the way I want to anyway.