Facebook Graph API – access denied for public page event - facebook

I'd like to receive data on a public page event via the graph api. I have been doing this for quite a while now, but suddenly my code is not working any longer.
Take for example the page ID 128431033877314. A graph api GET call to
128431033877314/events
delivers – as expected – the list of events for this page. Amongst them, for example, the event with ID 158032248286483. Trying to receive any data for this event fails, returning my favorite graph api error:
{
"error": {
"message": "Unsupported get request. Object with ID '158032248286483'
does not exist, cannot be loaded due to missing permissions, or does
not support this operation. Please read the Graph API documentation
at https://developers.facebook.com/docs/graph-api",
"type": "GraphMethodException",
"code": 100,
"error_subcode": 33,
"fbtrace_id": "GN5BhnWsN5O"
}
}
I have tried accessing /158032248286483 and 158032248286483?fields=id, I have used the graph API explorer to check different versions (2.6 and 2.12), I have tried with user, page and app access tokens. All in vain. Same goes for any other event returned.
As I said – this has most certainly been working before. I can hardly imagine this being a bug, as it would affect quite an important piece of graph api functionality. So I assume I am missing something here. Could somebody please tell me what it is?
Thanks so much in advance!

Yes, #CBroe, is right, in lights of "Cambridge Analytica" issue, Facebook was recently closed/deprecated/changed some endpoints. Reading bug reports many people complaining about lost access to some endpoints related to Events, Groups and Pages APIs. But, there actually two types of changes they did: some endpoints of Event and Groups APIs are deprecated means nothing you can do right now. (They will change/replace/tune it in future). And second part related to Pages API, that actually can be fixed with some coding on your side. For the Pages API they just forced May 8 breaking changes to take effect immediately. You need to migrate your requests to use "page access token" instead of "user access token" when you use those endpoints.
More info you can check there:
Blog post about actions they have taken:
https://developers.facebook.com/blog/post/2018/04/04/facebook-api-platform-product-changes/
Facebook breaking changes:
https://developers.facebook.com/docs/graph-api/changelog/version2.11

Related

(#200) Access to this data is temporarily disabled for non-active accounts due to changes we are making to the Facebook Platform [duplicate]

We have some code that uses Facebook Open Graph API to display some posts on our home page. It was originally developed by a previous developer and I rewrote it in ASP.NET MVC for our home page (where before it was PHP which I believe was loaded in an iframe). At that time, I used the app ID and secret that were left to me. This has functioned fine for a couple of years. This afternoon, we started getting an error back on our site: "Access to this data is temporarily disabled for non-active accounts due to changes we are making to the Facebook Platform".
No sweat. I figured I just needed to update our ID and secret. Unfortunately, no one seems to remember the user ID that was in control of that app ID. No sweat. I'll make my own. Unfortunately, any ID and secret I use to access posts -- even my own posts on a page totally not related to work -- returns the same access error. I can get name or cover or some other fields, but as soon as I request any posts, I get the error.
Here's an example of what I'm trying:
https://graph.facebook.com/MyCompanyName?fields=cover,name,likes,link,posts.limit(5){created_time,message,link,type,full_picture,picture,source,icon}&access_token=bunchofnumbers|bunchofnumbersandletters
I am aware of the status post at https://developers.facebook.com/status/issues/205942813488872/, but I think I must be doing something wrong since I can't even create new appIDs to get posts with.
Why does Facebook Graph API say my account is non-active?
Thanks.
Please read this article:
Mark Zuckerberg apologises for Facebook's 'mistakes' over Cambridge Analytica
Cambridge University researcher named Aleksandr Kogan had used an app to extract the information of more than 50 million people, and then transferred it to Cambridge Analytica for commercial and political use.
So facebook is changing its policies so that the personal data could be made more secure.
Until then you cant do anything about it.
I solved the problem on my website by removing the events from the fetched fields list
We started seeing this same error message on our platform today. I think there are a few things going on that all tie together:
As others have mentioned, there have been rapid and major responses by Facebook to increase data protection and privacy in light of the Cambridge Analytica incident. From what I understand, the bad actors exploited the ability access the data of Users (via the graph) that the app did not have an active, first-party relationship with. So, sort of like how "6 degrees of separation" would get you the whole planet, the 1 degree of separation on the few-hundred-thousand Users that connected with the app directly gave the app access to roughly 50 Million users...or something like that. FB is doing what they can to lock that stuff down now, big time.
The specific cause of your error is that something you're asking for in the fields parameter makes a leap (from the either the myCompany or the OAuth'd User/App whose access_token you are using) to a related item/items that FB now deems must have an "active" first-party/direct relationship with your Company/App/User in order to access. This is why you see the somewhat cryptic "non-active accounts" mentioning. I think they really mean that it's not "active with you or your app".
I'm not sure which one of the fields you request is at fault, but some trial-and-error will lead you to it. For us, it was clear: we were asking for the Members of all the Groups that User had access to. We didn't need that, so we cut it out and the error went away.
Facebook today updated the term and conditions
https://developers.facebook.com/docs/graph-api/changelog/breaking-changes/?translation&hc_location=ufi#groups-4-4
My understanding is that if your not a production app, they are limiting your for specific reasons. Unclear if thats because of Cambridge Leak, or upgrading the instagram api.
I also received the same error, however, if you are testing, you can hard code the graph api explorer token into your app to continue testing...
var data {
'accessToken': 'EEAC...',
}
FB.api('/' + id, getData, data, (_response) => {
console.log(_response);
});
Right now I am working with Facebook Open Graph API. And I was having this error every time I wanted to access/get the member (and their basic info) of the groups I am Admin.
{
"error": {
"message": "(#200) Access to this data is temporarily disabled for non-active accounts due to changes we are making to the Facebook Platform",
"type": "OAuthException",
"code": 200,
"fbtrace_id": "Byueyj6MtkoIx"
}
}
In between trial and error #JoshChristy was getting all the desired results! And after couple hours of research we discovered that facebook recognize some account as "non-active" and some "active" (I don't know based on what!) because I am pretty much active in facebook.
So, if you are getting this error that means you are not active enough for facebook ;)
I had this problem. It's solved automatically. I think it's a Facebook issue.
For me it work if I leave just one field - "name". If I add "link" and/or "events" fields it returns error
I was able to get Facebook Page Access token using the method below.
For anyone who may already have an app which has been reviewed can use that app's details as a temporary fix until Facebook is done with their API enhancements. Meaning you'll have to add the relevant redirect uris to the reviewed app as well as use that app's App Id and App Secret.
This works for retrieving page feeds and leads, I wasn't able to retrieve conversations. Also the permissions I requested were { scope: 'ads_management,ads_read,manage_pages' }
In our case, we retrieved, for example, a page access_token with a page ID using like this:
this.call('v2.12/'+pageid, 'GET', {fields: "access_token"}, token)
ended up with the error you mentioned.
However, we took a normal approach and all looks good now.
https://developers.facebook.com/docs/facebook-login/access-tokens#pagetokens
Same thing I just noticed too, and they kept my lead gen ads running and charging me eventhough they blocked the data.
Luckily going into ad manager directly you can still download the CSV/XLS files.
What is issue?
This error is due to recent action taken by Facebook. They said ” Access to certain types of API data is paused for non-active accounts due to changes we are making to the Facebook Platform” So if your account is non-active and you have created App using it then it might possible you get this error in your Plugin. Facebook Issue link is
When it will resolved?
Facebook has temporarily disabled some non-active accounts as they mentioned they haven’t given any estimated time to fix issue but it should get activated soon.
You can find more update on facebook Event API here

Why does Facebook Graph API say my account is non-active?

We have some code that uses Facebook Open Graph API to display some posts on our home page. It was originally developed by a previous developer and I rewrote it in ASP.NET MVC for our home page (where before it was PHP which I believe was loaded in an iframe). At that time, I used the app ID and secret that were left to me. This has functioned fine for a couple of years. This afternoon, we started getting an error back on our site: "Access to this data is temporarily disabled for non-active accounts due to changes we are making to the Facebook Platform".
No sweat. I figured I just needed to update our ID and secret. Unfortunately, no one seems to remember the user ID that was in control of that app ID. No sweat. I'll make my own. Unfortunately, any ID and secret I use to access posts -- even my own posts on a page totally not related to work -- returns the same access error. I can get name or cover or some other fields, but as soon as I request any posts, I get the error.
Here's an example of what I'm trying:
https://graph.facebook.com/MyCompanyName?fields=cover,name,likes,link,posts.limit(5){created_time,message,link,type,full_picture,picture,source,icon}&access_token=bunchofnumbers|bunchofnumbersandletters
I am aware of the status post at https://developers.facebook.com/status/issues/205942813488872/, but I think I must be doing something wrong since I can't even create new appIDs to get posts with.
Why does Facebook Graph API say my account is non-active?
Thanks.
Please read this article:
Mark Zuckerberg apologises for Facebook's 'mistakes' over Cambridge Analytica
Cambridge University researcher named Aleksandr Kogan had used an app to extract the information of more than 50 million people, and then transferred it to Cambridge Analytica for commercial and political use.
So facebook is changing its policies so that the personal data could be made more secure.
Until then you cant do anything about it.
I solved the problem on my website by removing the events from the fetched fields list
We started seeing this same error message on our platform today. I think there are a few things going on that all tie together:
As others have mentioned, there have been rapid and major responses by Facebook to increase data protection and privacy in light of the Cambridge Analytica incident. From what I understand, the bad actors exploited the ability access the data of Users (via the graph) that the app did not have an active, first-party relationship with. So, sort of like how "6 degrees of separation" would get you the whole planet, the 1 degree of separation on the few-hundred-thousand Users that connected with the app directly gave the app access to roughly 50 Million users...or something like that. FB is doing what they can to lock that stuff down now, big time.
The specific cause of your error is that something you're asking for in the fields parameter makes a leap (from the either the myCompany or the OAuth'd User/App whose access_token you are using) to a related item/items that FB now deems must have an "active" first-party/direct relationship with your Company/App/User in order to access. This is why you see the somewhat cryptic "non-active accounts" mentioning. I think they really mean that it's not "active with you or your app".
I'm not sure which one of the fields you request is at fault, but some trial-and-error will lead you to it. For us, it was clear: we were asking for the Members of all the Groups that User had access to. We didn't need that, so we cut it out and the error went away.
Facebook today updated the term and conditions
https://developers.facebook.com/docs/graph-api/changelog/breaking-changes/?translation&hc_location=ufi#groups-4-4
My understanding is that if your not a production app, they are limiting your for specific reasons. Unclear if thats because of Cambridge Leak, or upgrading the instagram api.
I also received the same error, however, if you are testing, you can hard code the graph api explorer token into your app to continue testing...
var data {
'accessToken': 'EEAC...',
}
FB.api('/' + id, getData, data, (_response) => {
console.log(_response);
});
Right now I am working with Facebook Open Graph API. And I was having this error every time I wanted to access/get the member (and their basic info) of the groups I am Admin.
{
"error": {
"message": "(#200) Access to this data is temporarily disabled for non-active accounts due to changes we are making to the Facebook Platform",
"type": "OAuthException",
"code": 200,
"fbtrace_id": "Byueyj6MtkoIx"
}
}
In between trial and error #JoshChristy was getting all the desired results! And after couple hours of research we discovered that facebook recognize some account as "non-active" and some "active" (I don't know based on what!) because I am pretty much active in facebook.
So, if you are getting this error that means you are not active enough for facebook ;)
I had this problem. It's solved automatically. I think it's a Facebook issue.
For me it work if I leave just one field - "name". If I add "link" and/or "events" fields it returns error
I was able to get Facebook Page Access token using the method below.
For anyone who may already have an app which has been reviewed can use that app's details as a temporary fix until Facebook is done with their API enhancements. Meaning you'll have to add the relevant redirect uris to the reviewed app as well as use that app's App Id and App Secret.
This works for retrieving page feeds and leads, I wasn't able to retrieve conversations. Also the permissions I requested were { scope: 'ads_management,ads_read,manage_pages' }
In our case, we retrieved, for example, a page access_token with a page ID using like this:
this.call('v2.12/'+pageid, 'GET', {fields: "access_token"}, token)
ended up with the error you mentioned.
However, we took a normal approach and all looks good now.
https://developers.facebook.com/docs/facebook-login/access-tokens#pagetokens
Same thing I just noticed too, and they kept my lead gen ads running and charging me eventhough they blocked the data.
Luckily going into ad manager directly you can still download the CSV/XLS files.
What is issue?
This error is due to recent action taken by Facebook. They said ” Access to certain types of API data is paused for non-active accounts due to changes we are making to the Facebook Platform” So if your account is non-active and you have created App using it then it might possible you get this error in your Plugin. Facebook Issue link is
When it will resolved?
Facebook has temporarily disabled some non-active accounts as they mentioned they haven’t given any estimated time to fix issue but it should get activated soon.
You can find more update on facebook Event API here

Why Facebook Graph API doesn't list all public events for a page?

There're lots of events for this venue:
https://www.facebook.com/pg/ClubRoxyPrague/events/
However when requesting with Graph API we only get a few. Here's link to Graph API explorer:
https://developers.facebook.com/tools/explorer?method=GET&path=ClubRoxyPrague%2Fevents&version=v2.12
Until recently this worked well for us. Maybe it's data access restrictions Facebook announced few days ago: https://newsroom.fb.com/news/2018/04/restricting-data-access/
Why the API returns only some events? Is there any way to fetch all public events hosted by a certain page?
Due to the breaking data access changes you mentioned, it already wasn't possible to access events directly (also see: Unsupported get request in get Facebook event).
It seems like your specific issue is a logical consequence of that decision (although the /{page-id}/events was still available up to today, I personally already found it pretty strange that events were still accessible indirectly).

Facebook Graph API not returning regionalized pages when using App Token

We have a server application monitoring certain Facebook pages for Videos being uploaded. As there is no user involved (server app only), we use an App-Token for our requests.
So far so good, but we have issues with Pages that are only available in certain countries or territories, e.g. "/bitburger" seems to be available in Germany only. I can access the page via API with an User Token (relating to a german user), but my server or even the graph/api explorer (authenticating with an App Token) cannot access the page info.
It will result in an error such as:
{
"error": {
"message": "Unsupported get request. Object with ID 'bitburger' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
"type": "GraphMethodException",
"code": 100,
"fbtrace_id": "AlDpyo1BjLm"
}
}
Our application is supposed to be global solution that does not care about "regionalized pages" and needs to get the page info (and its published videos) independently from a users location.
Is there any way to achieve this?
So is there a possibility to tell the API-call to ignore regionalized filtering?
User Tokens are not an option (as I said, server app only) and we cannot have a user for every country in the world. We wouldn't even know the right country to begin with :/ It has to work with a location-independant App Token.
Thanks in advance for your help!
Looking forward to any solution.
Thanks and kind regards,
Daniel
// Update:
Thanks for your responses!
I got in touch with Facebook and it is in fact due to "market sites" that only users from this market (country or whatever) have access to. This maps to the API as well and teh App itself does not relate to any market.
The only solution there is (when not having a user to request with), is to get access for your App granted by the page admin. Then you can access the pages info. Unfortunately that does not help for anonymous monitoring.

Add/Invite Users to a Facebook group using Facebook Graph API

I've got an iOS app using Corona(ie. in LUA; not ObjectiveC; though I'm not requesting specific Corona help, just how to do this in general) that I want to add or invite users of the app to the Facebook group. I've had success with members of the group posting to the group's wall from my app, but can't for the life of me get the "Invite Users" bit of code to work for people who aren't yet members of the FB group.
All of the posts on this website say it either can't be done (presumably because they're from before the Groups API was available) or just repeat what the Facebook documentation says (which I've read a million times, but maybe don't fully understand).
From Facebook's Group documentation (https://developers.facebook.com/docs/reference/api/group/)...
"Applications can invite users to a group by issuing a POST request to /GROUP_ID/members/USER_ID with an app access_token."
After figuring out how to get the app access_token (as opposed to the user access_token), I've tried using 3 different methods to test this out; Corona's facebook API request() command, making a PHP page with the command, and even tried Facebook Graph Explorer to try this code and nothing works.
All of them along the lines of...
https://graph.facebook.com/myGroupID/members/nonMemberFBUserID?access_token=myAppsAppToken
Corona gives me an HTTP 200(which should mean OK) but the facebook request returns an error (I've got a question in their forum, but I don't often get much help from them). My website PHP page returns an empty data object ala: "{\"data\":[]}". And the Facebook Graph Explorer just lists all of the existing members along with some cryptic "paging" object with a "next" web address in it. If I go to this address directly, it says:
{
"error": {
"message": "An access token is required to request this resource.",
"type": "OAuthException",
"code": 104
}
}
But I passed an access_token as a parameter! Does this mean I also need to pass a user access_token? And if so, what do I call it, if the access_token variable is already used for the app's access_token?
The reason why you are getting an empty json object is because you are doing a GET request. if you change it to a POST request it should work.