I have a bot using the Facebook Messenger API/webhook.
When Facebook sends a message the sender only has the id set, not the name.
So I try to get the name using the graph API using,
https://graph.facebook.com/v2.6/<sender-id>?fields=first_name,last_name&access_token=<page-token>
The sender id it gives you does not seem to be the real id, so using your app token does not work, but using the page token does not seem to work all the time either.
From my logs I see it work some time, and not others.
I get the error,
(#100) No matching user found
My only guess is that if it is an older conversation, the id it gives you have expired somewhere, so you cannot get the name?
Anyone else have this issue, or find a work around?
Okay, figured it out, and is user error.
The issue was I had another app linked to the page when testing it, and I have no removed the webhook. So the webhook was called twice and one of them had a bad token for some reason of other.
Anyway remove the webhook from the other app fixed the issue.
Related
Below url gaves the user's facebook page till yesterday. But it's not working anymore.
https://www.facebook.com/app_scoped_user_id/xxxxxxxxxxxxx/
Is there any way to get user's facebook page or it's disabled for a security reason?
Unfortunately, Facebook have chosen to disable the ability to resolve app scoped user IDs, so this feature is now gone. Seems they havent yet responded to people registrered to the bug to let them know.
https://developers.facebook.com/blog/post/2018/04/19/facebook-login-changes-address-abuse/
There's a new permission in Graph API 3.0 that provides a URL link for a facebook profile:
user_link
In order to use that, you have to submit your facebook app for review (and likely have a legitimate reason you need this information.
Update: I went through this process, our app got approved for user_link permission, and it works as advertised.
The user_link variable is an app scoped link that will work as long as the app remains approved, and will stop working if the app should get removed or they revoke the approval. So it's a special URL that really only works as long as the FB app is around.
https://developers.facebook.com/bugs/2054375031451090/
Subscribe to that bug to get updated on the status.
There is also a blog entry about this: https://developers.facebook.com/blog/post/2018/04/19/facebook-login-changes-address-abuse/ - so this is actually not even a bug.
This is no longer possible and will not be, according to https://developers.facebook.com/blog/post/2018/05/01/facebook-login-updates-further-protect-privacy/
Your best bet going forward is to open the Facebook site and search for the user name like so:
JavaScript:
Assume user is an object with a property called name that contains the user's name.
window.open("https://www.facebook.com/search/str/".concat(encodeURIComponent(user.name)).concat("/keywords_users"));
In most cases this will allow you to quickly find the person in question, given that you can still display their profile picture using the app-scoped ID on whichever site lists users. It's not great, but it may be of help to someone. We've resorted to this solution in our CRM.
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
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
So I've got a nice little Facebook app going, but I seem to be having an odd issue.
According to the documentation, when you call the Facebook apprequests API to send a game request to another user you should receive a response which contains a to parameter, which will be a list of facebook IDs. Now this is pretty much what happens for me, only the facebook IDs don't seem to be correct. They look like facebook IDs in that they're a long-ish string of numbers, but when I try to look at them in the graph explorer, they return nothing but an error message saying the object doesn't exist. When I'm testing I know what the IDs are of the friends I'm inviting and they don't match what I'm receiving back from the response object, and I don't see what these numbers are or where they're coming from. It's not the request_id parameter, I know that for sure.
Now my only thought is that it has to do with my app still being in sandbox mode, but I did try to switch it to production mode for a few minutes and test but it still did the same thing. The only thing I can think is that maybe it takes some time for the change to take effect, so tomorrow I'll try to switch it to production for a little longer and see if that does anything, but otherwise I'm stumped. This feature is really important too, so any help is highly appreciated.
To sum up the comments:
Select YOUR App in the API Explorer, instead of the "API Explorer" App.
IDs are "App Scoped", which means they are only available for your specific App. They can be used like global IDs though, you don´t need the "real" IDs anymore and you can´t get them anyway.
If your App is NOT a game, don´t use apprequests. Those are for "games with a Canvas implementation" only.
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