Cannot get page wall posts using Access Token - facebook

I'm an administrator of a group where my friends and I post music. It's a private group.
I want to get my own USER access token to get the JSON of the posts to this wall. I don't need to post to it, I just want to retrieve the contents so i can stick it on a tumblr.
As I recall from a couple of years ago, the Facebook API is a completely bloated, convoluted pile of crap with little in the way of simple documentation, so I don't know why I'm surprised at the difficulty in getting such a simple piece of information.
I have used an existing old app that I created a while ago to request my access token (I just used the object that was output by with_js_sdk.php when I put in the appid and secretid) and what I received gave me an empty data json - which means the access token didn't work. I retrieved the app access token using grant_type=client_credentials and that also didn't work. Is there a version of Grant_type that will give me an up to date access token for myself? Or do I need to grant something permission to see the posts on this page (even tho I'm accessing it as myself), so I've no idea what I'd grant permissions for.
Can someone just tell me how to get my own access token to see the posts in this group? It's driving me mad. One site told me I had to get an SSL certificate, which is bonkers.
This is my current request:
https://graph.facebook.com/171089229612510/feed?format=json&limit=25&since=1334425968&__previous=1&access_token=[ACCESS_TOKEN]
Or just this
https://graph.facebook.com/171089229612510/feed?access_token=[ACCESS_TOKEN]

Maybe you'll be happy to learn that the docs and the API are way improved compared to a couple of years ago.
To read the feed for a group, you'll need to request the user_groups permission as described in the graph api documentation for the group object.
Try it out using the graph explorer before writing any code.
And then, since you are using an old app, you'd do well to make sure you are using the latest version of the SDK.

Related

Graph API empty events list of page [duplicate]

Using the latest version (2.12) of the Facebook API I'm trying to get (public) events for a page, using the Graph API Explorer.
However, I can't seem to get it working:
When I hover over the greyed out "id" or "name" on the left, it says "Field is empty or disallowed by the access token".
Now the page I'm using as an exmple here is Techcrunch, and they have plenty of events coming up. So "empty" doesn't seem to be the issue.
On the "disallowed" side I've checked the API reference on https://developers.facebook.com/docs/graph-api/reference/page/events/.
However, I can't seem to find any issue here either. It says "Reading Page events requires a valid Page access token or User access token with basic permissions.".
What am I missing here? Any hints are greatly appreciated!
Visit https://developers.facebook.com/docs/graph-api/changelog/breaking-changes#pages-4-4
Currently Facebook is not returning events for pages using Pages API unless you use an user accesss token and that user has been invited to any of the events of the page or is attending/interested in any of the events of the page.
As unknow_b said :
currently to access events you can also use a user endpoint such as ‘/me/events’ or ‘/me/events/not-replied’ using an access token valid for that user. you can get the events that the user was invited to or is going/interested
But the access token user, is only working for 1 hour !
Does someone have another better idea?
I'm trying to do the same thing: getting public events from a page. Related to the above suggestions:
I tried the short-lived user access token two weeks ago, which worked for a short time. Now it does not anymore. Does it for any of you?
Both the long-lived user token, a page token generated with either a short- or long-lived user token do also not return any events.
At https://developers.facebook.com/docs/apps/review/#platforms, Facebook states:
Beginning April 4, 2018, all apps, including those formerly approved, must undergo App Review in order to gain access to the Events API, Groups API, and Pages API. Apps accessing the Events API and Groups API will lose access and require review once App Review resumes.
So being reviewed might help. I will report further.
Update 1: an answer on this related bug reports states it more clearly:
App review required to use the following edges: GET /page/events and GET /me/events
Meanwhile they cancelled all pending review requests for the Graph API 3.0 changes, so I have to resubmit.
Update 2: My project got rejected & I'm not bothering to continue it now.
Yep. Facebook has taken down the Graph API for page access tokens. I had this code in production for 2 years and it worked great. The only way to retrieve data (or was a week or so ago), was a temporary user token that lasts about 2 hours. It's totally broken my band's schedule page. I've been through every avenue and even spoke with a facebook ad team employee on the phone that was aware of it. She seemed to empathize but had no solution for me. I would count on it being down for a while.
I just created a python script, you can see here. It queries the given facebook page and it's events, and puts the data into a mysql table.
It looks like it won't be working anymore due to the scandal with Facebook Analytics (see Why does Facebook Graph API say my account is non-active?).
In the popular plugin facebook-events-by-location-core, you can take a look into the issue#29 discussion. It's well explained there, and I don't think so there's a way we'll get the data in a public API available anymore.
There were also some rumours it was a competition for their (dead?) Facebook Local app, but not sure about this.
I have finally figured out a work around for this. On your fb application, you have to disable the secret key requirement. This can be found under the advance settings of your fb application console. It's called " Require App Secret".
Once you generate a fb PAGE access token, you get a fb page token, and then extend it. here is the token debugger: https://developers.facebook.com/tools/explorer/
You can extend the access token programmatically as explained here: https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
AND
https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens
OR
There is also an extend tool in the access token debugger (just click on the debug and the extend button is bottom left): https://developers.facebook.com/tools/accesstoken/
Yes , we had a working product back in 2016 ( almost like it's successor Fb Local ) . We were monetised and ready and selling events tickets on the messenger chatbot.
Idea was to solve discovery + booking for hyperlocal events. We went out of business and now its a heart ache to see Fb local.
enter image description here

Facebook Graph Api me/home Seems To Return Same as me/feed

I know there have already been a lot of questions asked about replicating the users home feed and using me/home, but my question is slightly different.
A few months ago I wrote code to authenticate with Facebook (get user access token) and then retrieve their home feed with me/home. This worked fine at the time as far as I can recall. I've just gone back to the code today, and it doesn't appear to work. The result I get back looks almost the same as me/feed, which is to say it is almost entirely posts from the same account and not posts from 'friends'. Just one post from someone else, a change to their profile pic, shows up but the rest are all 'self posts'.
This only happens with tokens for my own app. If I use graph explorer using the same token, I get the same result. If I use graph explorer with it's own token then it shows me something much more like the actual home feed on the Facebook site. Generating new tokens doesn't help. I have checked the permissions on the tokens used are the same, in fact I even copied the permission list from the generated graph token into my app and re-authenticated, but it didn't help. If my app does the request, then I get almost nothing from other people from me/home. This is the same if I use myuserid/home. Makes no difference.
So my question is, why? Have Facebook changed something and is there a way to change my app so it gets a better version of the home feed?
Secondly, while researching this I've discovered posts saying read_stream won't be granted by Facebook to any app on any platform that has an 'official facebook app'. Does this mean I'm out of luck anyway, even if I get this working for testing purposes using the account that owns the app, I won't actually be able to publish it so others can use it?
Thanks.

Facebook API for Share returning empty results set

I am new to Facebook API. I am building a Facebook app to fetch all the name of people who shared, commented and liked a post in a tabular format. I am able to get the like and comment details through Facebook API but can not find and proper API to get the share details.
I am using
https://graph.facebook.com/post_id?fields=sharedposts&access_token=my_access_token.
This API is returning an empty result set. And I have granted all the available permission to the access_tokn. Can anyone tell me ,Is there any other API that I can use. I saw a option of scraping the Facebook page for share,but I don't want to go that way because Facebook keeps on updating every thing.
I'm having the same problem as you, but I think I'm going a little step forward.
Try adding a limit to your sharedposts and maybe it will return some data:
Try this way:
https://graph.facebook.com/post_id/sharedposts?access_token=my_access_token&limit=1000
That should work for a regular post.
EDIT: Maybe the problem could be that althought you have granted all the perms to the token, the people who share that posts have to accept that permission too.
Otherway your JSON won't return any data.
The /sharedposts endpoint will -only- retrieve posts from users who have -also- granted your app. This means that even though a post might be public on a users' timeline, unless they have also granted your app permissions, you will not be able to retrieve that post.
For example: a user posted to a page and the post is public. This post can be retrieved with an access token. Let's assume that the user also shared this post to their own timeline. But, since the user has not granted permissions to your app, you will not be able to see this post using the /sharedposts edge on the original post (on the page). This also holds if the user shared their post publicly to his timeline.
This behaviour is by design; the API is more restrictive in returning user data than the website is. This holds for multiple endpoint and this is one of the examples where it is the case.
Source: https://developers.facebook.com/bugs/1404733043148335

Unable to Receive Wall Posts after OAuth

First off, I am new to using Facebook's Graph interface but I've read the documentation and am still unable to retrieve the desired result. First I was able to set up an app account and retrieved my App ID and App Secret, I then set up and advance OAuth Dialog that will ask the user for read_stream permissions (accessing the news feed). I have successfully had three users go throught the authenticator and it allows me to see more of their data but still no wall post (which I assume is the news feed). Below are the steps I followed if someone can help. Thanks. (Sidenote - All urls below came straight from the facebook documentation.)
https://www.facebook.com/dialog/oauth?client_id=XXXXXXX&redirect_uri=http://myurl.com/wheredataisdisplayed&scope=read_stream&state=SomethingIndentifiable
returned: state and code=1XXXXXXXX, I then used that to get the OAuth Token
https://graph.facebook.com/oauth/access_token?client_id=XXXXXXX&redirect_uri=http://myurl.com/wheredataisdisplayed&client_secret=XXXXXXXXXXXXXXXXXXXX&code=1XXXXXXXX
returned access_token = XXXXXXXXXXXXXXXXX and expires = 9875067805, I then tried to query the data for that user
https://graph.facebook.com/me?access_token=XXXXXXXXXXXXXXXXX
The end result is more data than what is publicly available but I still don't have access to the users wall data. Another thing I want to do with this is to use it with an infinite session key so that once the user does this once they will have continued access to their data but that I can work out later, Thanks for any help in advance.
Are you accessing /me/feed correctly, and if so are you receiving an error message when you do so, or just nothing back?
/me/feed should work for this.
You can also request /me/permissions to check if the correct permissions were granted which may help you solve the issue

How to show your own facebook data on a website

I got "The question you're asking appears subjective and is likely to be closed." when I started to write my this and a lot of similar titles popped up.
So I've browsed them all and only two might actually help me solve the problem, but they weren't answered.
So... I will continue to ask my question and hope that it wont be closed.
Here it goes:
All I want is to show the feed of a facebook page on a separate website. I.e. status updates, photos, videos, events, comments and likes, all public.
I've googled and also looked at some docs on the facebook developer pages, but all I found was about how to make the visitor grant my fb-app rights to do stuff. Then I would get an access_token which I could use, BUT this token expires.
Never mind... I DONT want to make the visitor grant stuff, I only want to show MY stuff, which is already public.
Preferably I would like to do it with javascript and ajax. PHP might not be supported where I have my site. So if you have an answer for me please say it in javascript first :)
Although ALL answers are more than welcome.
Please, pretty please, with sugar on top, help me with this one.
Getting public data of a facebook page is easy, you don't even have to own the page for that.
You will need a facebook application for that, once you have that you can then authenticate against facebook as the application (from your servers) as explained in the Authenticating as an App guide. You can try it with a simple curl request to:
https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID
&client_secret=YOUR_APP_SECRET
&grant_type=client_credentials
After you authenticate you receive an app access token and you can use it to make api requests for public data.
For example, try the South Park page object, feed connection, photos connection and events connection.
The token used in the graph explorer is a user token, but you can paste there the access token you got from the curl request for example and it will work.