API Exception (OAuthException: Cannot call API on behalf of this user) - api

Got the following exception when calling api (/me) using the latest PHP SDK.
OAuthException: Cannot call API on behalf of this user.
The same exception appears for some facebook account only. Any clue?

I found the source of the problem (on our site, at least). In Facebook's developer console (https://developers.facebook.com/apps), our app was showing an invalid privacy policy. Due to this, Facebook had automatically placed our app into Sandbox Mode.
Updating our privacy policy and (more notably) removing our app from Sandbox Mode caused this error to cease.
Other users seem to have had some success with removing regional (country-specific) restrictions on who can and cannot log in to their app (https://groups.google.com/forum/#!topic/django-social-auth/XaE5dFXEqhA)
Additionally, #Igy's questions sound reasonable and might lead to finding a solution as well.
Best of luck! :)

Is that user's access token still valid? Has the user blocked you? Can you navigate to the user's profile manually? (i.e their profile might be unavailable)

Related

Can't get my app reviewed in Facebook API

I can't get my app to be reviewed through the Facebook API.
The app is purely a facebook messenger bot, and the app type is "business".
I have configured the specific permissions I need, however I recieve an error that states "You do not have any platforms eligible for review. Please configure a platform on your Settings page."
I also cannot add my app domain in the basic settings, as whenever I press save changes, the url does not save and disappears.
Additionally there is no option to make my app live.
Any advice?
The error message
I am leaving this answer in the event someone else needs it. It was an answer suggested by Facebook support when I encountered the same problem.
Go into App Settings and add a platform "Website"
Just add your website URL.
If the requested permission is just Messenger based then the website will not be accessed or tested.

Botframework v4 - Facebook Channel - Operation returned an invalid status code 'Forbidden`

Last year I developed a chatbot with Microsoft Bot Framework that I integrated in the Facebook Messenger of a page. Everything worked fine until 16th of December (last successful log). The page is not used by a lot of people therefore the application might have worked also longer than that.
Today I tried to use the chatbot again and I did not get any response. In the Logs I just found the error message "Operation returned an invalid status code 'Forbidden`".
After a bit of Debugging I found out that the problem is sending messages back to the Facebook Messenger.
context.SendActivityAsync(...)
I did not change any configuration within my Azure Bot Channel registration recently. I am aware of the privacy changes within the Facebook API, but as I already struggle with sending a simple text response like "Hi" I assume that cannot be the problem. Also the permission scheme has changed for Facebook apps. I have the permission for "pages_messaging". Do I need another permission now? Or did I miss another change in the Facebook API?
Technical Details:
Facebook API Version v6 (tried also v9 but no change in behavior)
Chatbot based on .Net Core 2.1
Bot Builder SDK v 4.11
Any hints what I did wrong or where I can look for further information is much appreciated.
Edit: I tried to add a new page to my Facebook App and get following message:
There is a hint that a permission is missing, but I cannot find out which one I require. As I only send responses to FAQ's and if required handover to the customer service inbox I just requested the "pages_messaging" permission. Do I require any other permission now?
I found the problem. For everyone that might have the same problem:
In our case the administrator that added the Facebook pages to the application was removed from the admin permission list of the pages. After re-adding the admin permissions for the pages the bot started working again.

Facebook Messenger App Invalid Scope - permission: pages_messaging_subscriptions

I'm attempting to connect a Facebook Messenger App to one of my pages..
I've connected Facebook Messenger Apps to pages before.
But this is the first time I've received this error...
What gives?
This is a bug and we are currently working on it. In the meantime, please use our beta tier or generate the page access token through our API. To use the beta tier, you can access the following:
https://developers.beta.facebook.com/apps/89000000000000/messenger/
we got same error and here is helpful answer
https://developers.facebook.com/bugs/281723762198561/
In my case, my app was live which was preventing access token generation.
Just go to app dashboard and disable the live checkbox as below:

Migration token from AuthSub to OAuth2

Recently, AuthSub died...?
Is it possible to migration from session_token of Authsub to refresh_token of OAuth2 ?
Please tell me how to do it if possible.
Its still supported, but is failing for us as well (and others if search twitter for it). I'm wondering if Google is experience a technical issue with AuthSub or if they made a change (e.g. patch/release) earlier this week that is causing the issues?
We see it working for some Google accounts and fail for others - starting on Dec 10/11. So, its not impacting every Google account.
We are currently not capturing the outgoing requests to google. We are using the library gdata-calendar-1.0.jar to make google calendar api calls using AuthSub and the library is throwing an exception with the exception message "Unknown authorization header". This worked perfectly up until Dec 10/11th or so for all of our users.
What is strange is now the same calls do work for certain gmail accounts but not for others.
In our testing we are seeing that turning off the enhanced security in our web application results in the warning displayed to the user on the Google Authorization page but makes the connection work for the accounts that are failing.
Here are the api calls we are making:
AuthSubUtil.exchangeForSessionToken to connect to the google account
CalendarService.query to get events
CalendarService.insert to insert events in calendar
CalendarService.getFeed to get the calendars
AuthSub is still supported by Google as per Google's deprecation policy.
As for a migration path to OAuth2, currently there is none.

'Cannot call API on behalf of this user' on FB API call

I am having trouble with facebook API call. I am using Koala for server side api call but recently came into issue making api call. So I tried to bypass koala call and did raw api http call using call but to no avail.
When I do curl from development machine it works fine.
curl "https://graph.facebook.com/me?oauth_token=my_token
It returns profile details, but the same thing done from production machine, it's throwing the exception
{"error":{"message":"Cannot call API on behalf of this user","type":"OAuthException","code":200}}
Does anyone had the same issue? Like to hear from you guys.
I found the source of the problem (on our site, at least). In Facebook's developer console (https://developers.facebook.com/apps), our app was showing an invalid privacy policy. Due to this, Facebook had automatically placed our app into Sandbox Mode.
Updating our privacy policy and (more notably) removing our app from Sandbox Mode caused this error to cease.
Other users seem to have had some success with removing regional (country-specific) restrictions on who can and cannot log in to their app (https://groups.google.com/forum/#!topic/django-social-auth/XaE5dFXEqhA)
Best of luck! :)
I had the App in dev mode. All I did was remove the subscription & resubscribe my webhook server and this worked for me.