Is "credit_balance" whitelisted feature on Facebook? - facebook

I've been storming the internet for information on how to obtain "credit_balance" from Facebook user.
To get user credit_balance, I'm using: Facebook Credits - Getting error code 13 when trying to get credit balance
I'm aware of the fact that you have to use "application access_token" instead of user's one (I've been trying both tokens lately just to be sure).
And I'm fully aware of multiple posts which are saying that getting "credit_balance" is whitelisted feature.
So my conclusion is, that our app has not been whitelisted yet, that's why I'm receiving "Exception: 13: The underlying FQL query made by this API call has encountered the following error: credit_balance is not a member of the user table." exceptions ... so it should be end of story ... but, one of the Facebook officials told me, that "credit_balance" IS NOT whitelisted feature. Now I'm confused...
My two questions:
(1)
So where the truth lies? Please, can someone confirm or refute whether "obtaining credit_balance" from Facebook is whitelisted feature and that I have to undergone the whitelisting procedure which begins with filling the form here: https://www.facebook.com/help/contact_us.php?id=157379954315015
And then wait for the eternity to get whitelisted (obviously, we've already asked to get whitelisted...). (I'm also aware of fact that after whitelisting you have to re-authenticate your users, done that as well, still no luck.)
(2)
Also is there any chance how to check whether my application is whitelisted?
Thank you in advance
Jakub

Finally, an official answer. Our application has been whitelisted for: frictionless payments, get_balance (== get_credits == credit_balance), and gamer_status.
So if anybody has problem with "getting number of facebook credits", be sure you are whitelisted first.
Facebook whitelisted us after about 1.5month, so you should apply for "whitelisting" as soon as you start your project + you should be kicking (with all respect) Facebook to reply you as soon as possible.
Jakub

I don't know the specific answer to your question, but I know that the Facebook API keeps changing rapidly, and so many of the posts/guides on the internet are outdated.
Also, a quick look on the official Facebook credit API page yields the following:
This whitelisted feature is an API call that allows an application to
determine a user's balance. It is only available to developers who
have designated Credits as their in-game currency. You can apply here.
Please Note: This feature is currently only available through the old
PHP SDK. You also must re-authenticate the user after whitelisting,
before making the function call.
Perhaps the note is relevant to you?

Related

Stuck in Facebook's Access Verification hell for Tech Provider Business

We use the Facebook API in our web app to provide a "publish to Facebook group" feature directly from the web app. Customers can publish the results they are achieving thanks to our products in our group.
To implement this very simple feature we had to duck, provide screen recordings, send business registration papers, give login credentials, describe the process from every perspective, crawl and bent.
Then
on Dec 15, we received the following message:
"We’re now requiring an admin of your business, [....], to complete access verification. This is a new process that asks for information about how you use the Meta business assets and information of your clients, so we can verify that your business is a Tech Provider."
Also in the same message:
"This typically takes around 10 minutes to complete and you’ll only need to do this once."
Since then I filled in the form 9 times, with serious effort. But every 5 days it just get rejected without a clear reason given, and there is no chance to contact a Facebook support.
Does anyone know how to fill in the "Access Verification - prove you are a Tech Provider form", so I will get accepted?
The actual questions that they keep asking are:
Add details about how your business will use Platform Data (i.e., any info or data you obtain from us) to enable a product or service on behalf of your clients.
Describe how your clients use your product or service.
I already tried the solution proposed here:
Stuck in Facebooks Access Verification hell
quoting their questions, but it has been in vain...
The time is running out, in some days Facebook is going to block the API if we don't pass this verification process, but I don't know what else we can try...
I tried to contact Facebook, but this seems to be impossible. Some forms (App Review Support) just give a generic error message.
I tried to post a request of help to the Facebook Developer Group, but they rejected the request because it's not related to a development issue.
Same when I tried to open a ticket with the Facebook tech support for a bug; they answered that it's not a technical issue.
There is no guide from Facebook on how they want this information to be provided.

Unexpected "Cannot call API on behalf of this user" after upgrading to graph api 2.10

We've allowed sign up/access to our website using Facebook Login for a long time. Two days ago, after upgrading to graph api 2.10, this stopped working for a portion of our users. Myself and most others are unaffected.
The error message received in the Access Token response reads "Cannot call API on behalf of this user".
I can't find anything in the 2.9 -> 2.10 changelog that mentions anything remotely connected to this problem, and I've found very little on this issue externally.
A few posts suggests that it might have something to do with insufficient privacy policy settings in our Facebook app settings, but everything is in place expect the non-mandatory Data Deletion Request URL. The fact that it also works perfectly fine for me as an EU citizen (affected by GDPR) says to me that it's something else. We do not have any country restrictions in place, and those who are affected by this comes from a variety of countries both inside and outside of the European Union.
Does anybody recognize this problem?
I ran into the same problem, also after an update (from 2.9 to 3.1). The fix for me was to remove location restrictions within the facebook console (Settings > Advanced > App Restriction > Contry Restricted):
I got this idea from a comment on this similar question, and this google group thread.
ref: https://developers.facebook.com/docs/audience-network/optimization/apis/FB-login-Reporting-API
sounds like the app type should be Business
today I meet this error, follow above document, I new create a business app, then error be resolved.

How can I get owner email for a Facebook App using the App Access Token

How would I get the email address associated with an active Facebook App ID, if all the usual methods (such as here, and here) don't return any email information with my creator-uid?
(I simply don't get the email field returned, even when I specifically request it as per here. I don't think this is a case of this as I didn't get an "App has no owner" error, or any error whatsoever.)
I've also tried this, but I'm in a catch-22 as I can't log in to select the application first.
I'm looking for the owner email address, so I can log in to make administrative updates following graph API updates.
Other specifics:
I get the following when I hit the Graph API via: https://graph.facebook.com/{my-app-id}?access_token={my-access-token} or https://graph.facebook.com/{my-app-id}?access_token={my-access-token}&fields=email
{
"name": "my-name",
"id": "my-creator-uid" }
I've tried to recover my FB account using all emails I can think of, but FB says 'no account exists' for each that I try. (This is a data-analytics corporate account being used to gather data for 12+ months, so I can't simply create a new account/app ID and start using that instead, as app-scoped user IDs will change.)
I've also tried viewing https://www.facebook.com/app_scoped_user_id/{my-creator-uid}/ and https://www.facebook.com/{my-creator-uid}/ from another company FB account, but both get:
Sorry, this content isn't available right now The link you followed
may have expired, or the page may only be visible to an audience
you're not in.
What else would you suggest? What might have happened? I've tried to contact Facebook, but that search led me to this forum post, so I'm here. Thank you in advance for your help.
This is not a programming question, try to get in touch with the Facebook Team, if you are working with Facebook paid services (like Advertising) you might have an account representative that can accelerate the things a little bit (But this can be a really long wait).
A more realistic option is to create a new profile and an new app, also your application will be reviewed as well (Take a little less time than previous option).

Facebook Connect: proxied_email not always returned by users_getInfo

Today I realized that FB Connect does not return the proxied_email field in about 4 out of 5 times. (I can reproduce this with a single users repeatedly, so this obviously does not have anything to do with privacy options or permissions)
It definitely worked fine last week ago.
I could not find any official info that this field is going to be removed or anything, so...
Does anybody else have this problem? Is there anything I am doing wrong that could be causing this behavior? Or is Facebook just having a bad day?
I did the following quick fix:
$personArray = $facebook->api_client->users_getInfo( $fb_config->user_id, "last_name, first_name, birthday, hometown_location, current_location, is_app_user, proxied_email" );
$email = $personArray[0]['proxied_email'];
if(empty($email)){
echo 'Proxied email was not retreived. Trying fql query...';
$facebookFQLResultXml = $facebook->api_client->fql_query("SELECT proxied_email FROM user WHERE uid=".$fb_config->user_id);
$email = $facebookFQLResultXml['proxied_email'];
}
I'm going to posit that it's just one of those Facebook days. There is supposed to be a big change this month that will change the way developers interact with users. Notifications will be removed, etc. Facebook is going to allow full access to a user's real email address (with the user's permission), and remove the proxied email system.
However, the official word is that the email proxy system should still be supported. According to http://wiki.developers.facebook.com/index.php/Roadmap_Email, users who have already granted proxy email permissions will continue to be available. However, it doesn't say anything about new users, so perhaps they have removed the email addresses for those that did not grant permission?
I noticed that they put the new privacy controls in place today, so it could be they made a change to the proxy at this time.
The same thing happened to me too. In the Facebook Connect JS API the proxied_email works about 80% of the time, but in the Facebook Developer Toolkit (for .NET) it barely works at all (which is strange cause I think they use the same facebook api under the hood).
This probably could have something to do with the somewhat failed privacy settings introduced the other day, as the whole proxy email functionality is related to facebook privacy (as zombat mentions above)? According to http://developers.facebook.com/live_status.php, the API seems to be under a fair amount of stress at the moment, cause it's acting a bit sluggish.
Do these things happen often? Where the facebook team either decide to just change the implementation overnight or where the service more or less nosedives?
It seems that the data returned by users_getInfo doesn't longer contains the proxied_email value
You can't circumvent the problem with FQL:
$aResult = $facebook->api_client->fql_query("SELECT proxied_email FROM user WHERE uid=$fbUid");
$sFbMail = $aResult[0]['proxied_email'];
I'm using the Facebook .NET Developer Toolkit and think it's just a bit buggy, which is why it didn't always work. In the end I also worked around the problem using FQL which worked really well (with a touch of XPath)

Facebook Connect Implementation questions

I hope this is allowed but I have a number of questions regarding Facebook Connect, I'm quite unsure on how I should approach implementing it.
I am working on a live music type service and currently have user registration, etc. If I were to implement Facebook Connect alongside this, would I still be able to email the Facebook Connect users as if they were on my database?
Also, would it instead be possible to let users who have Facebook "link" their accounts once registered so I am able to give them the benefits of sharing via Facebook and inviting friends while still having an actual registered user on my system.
I have tried to read up answers to the above questions but what I've found is quite ambiguous.
Thanks, look forward to your views.
Facebook's documentation process is very poor, so don't feel bad about having a hard time getting started. Their wiki-style approach to documentation without any real official documents tends to leave the "process flow" tough to grasp, and requires piecing together parts of a bunch of randomly scattered docs.
Facebook has an obligation to protect privacy, so they never make a user's actual email address available to application developers, through Connect or normal applications. They do have a proxied email system in place that you can use, however, you must get explicit permission from a user in order to email them. There's a decent document on proxied email here. You can get permission by prompting for it; there's several methods for doing so linked in that document.
In regards to linking Facebook and local accounts, this would definitely be the way to go. Once a Connect user logs in, you want to store that fact for that user so you can provide the Facebook-specific functionality. I would simply create a normal user account in the database for every new Connect user that came by, with it's own local id, so that you don't have to do special handling of two different types of user accounts all over the site. That being said, the account would obviously have to be marked as a Facebook user's account (I use an externalId column in my users table), and any part of the site that relied on information you might otherwise have locally would have to handle the Facebook aspect properly (such as using proxied email instead of normal email).
For existing users, you could arrange an "account link" by having a process whereby they log into FB Connect after they've logged into the site already, and you could detect that and simply add their FB id to your users table. After that, they could log in through Connect in the future, or through your normal process. I've never done this, but it should be possible.
If you write the account handling code generically enough, your site will be able to function well no matter what kind of user you throw at it.