Accept Facebook non-discrimination policy with System User - facebook

When I'm trying to validate or create my ad using System User access token, I'm getting this message:
It looks like you have not yet certified that you'll comply with
our non-discrimination policy. To continue advertising, click here
to certify compliance with our non-discrimination policy.
I have already accept this non-discrimination policy but from my Facebook Account. But I'm still having the same error message.
My question is, is there a way to accept this policy from the System user using Facebook API or something else?
Thanks for your help.

You have to “Review...” on section 1 from this link. Then you will see “I accept” bottom, press it.
Link from facebook official :
https://www.facebook.com/business/help/338925176776440?helpref=uf_permalink

Related

How does one add "integration flow for an end user to connect their Instagram business account(s)" - FB Graph API (For IG) question

We have a simple app that summarizes the total number of mentions your instagram account gets using the IG-User/tags endpoint on the graph api (https://developers.facebook.com/docs/instagram-api/reference/user/tags/)
The pre-requisite of the app is the user has their fb account linked to their IG - Business or IG - Creator account.
Unfortunately every time we've submitted it for review so far it has come back with the same comment from FB:
"Although we were able to login to your app using the Facebook Login authentication, we were unable to test the steps to connect an Instagram business account. As a result, you'll need to implement an integration flow for an end user to connect their Instagram business account(s)"
Now as I understand it there is no way I can get the user to link their IG account to FB or to a FB page using the API. The "link account" action is purely handled using the Instagram app. Or am I missing something here.
Well after 3 weeks of back and forth with multiple seemingly segmented facebook support teams I have been able to get this permission from them.
Turns out that there's an unexplained flow here:
This is verbatim from the information I received from their chat support (but is not found anywhere in the documentation)
"You have needed to provide Test Users on your App Dashboard, grant the test user the Instagram_manage_comments permission and then provide us with the login details. We would then link that to an internal Instagram Business Account."(sic)
The part where they link an internal business account to the test user happens on their end and outside the scope of the app. I confirmed this and even then I failed the review multiple times because apparently the steps to approve IG business permissions have not been standardized yet and sometimes the approver simply doesn't know what needs to be done. It's a strange state of affairs and the answer it seems is to just keep pushing.
I'm having the same problem and looking forward to see some comments to your post since the first day. But I started to think it will never come.
I believe they want a new user to start with minimum permissions (which is the email permission) and add other permission only as they are needed. This requires a mechanism in your app that guide a new user logged in with only email permission to give other permissions (e.g. taping a button that opens up user’s IG business account needs instagram_basic and manage_pages permissions. Or taping “post comment” button needs manage_comments permission.) So your app should open up a window that the user can give permissions when any of these events fires. (or when user decides to take permission(s) back)
This is what I understand from “steps to connect an Instagram business account”.
But I am not sure if my understanding is correct. I would definitely like to hear if you found any solutions.
I'm also having the same problem as you as I'm developing similar service to IGBlade (https://igblade.com) & Social Blade (https://socialblade.com).
I'm beginning the wonder if I should change my app review request so that I would inform Facebook that the permissions my app is requesting work serverside and therefore there's no need to implement an integration flow for an end user to connect their Instagram business account(s) to my app.
Any thoughts?
Here is what I have done to get the approval
Create a Facebook test user with correct permissions
Log in with this user
Create a Facebook Page
Edit settings on Facebook Page and add Instagram Business account (personal one)
Submit Facebook review with both credentials (Facebook test user + personal Instagram user).
Wait for review and do not forget to change your personal Instagram user password after the review.

OAuthWebSecurity Facebook ominous message: app "would like to access your public profile, friend list and email address"

Using the asp.net-mvc4 oauth Facebook client (OAuthWebSecurity.RegisterFacebookClient) pretty much as it is in the MVC4 template internet app. Problem is, when users log in with their account they see the message:
"would like to access your public profile, friend list and email address"
The thing is, I don't want access to their public profile, friend list and email address. I just want to allow them to log into my app using their Facebook account. I can see that this message would turn people away (I personally wouldn't click 'okay').
Ideally, I would like to specify the level of permission required in my MVC app where the mimimum level does not result in that message. This would allow increased privilege at a later stage if needed. But, I would settle for any way that I can get a less ominous message.
I have looked at the settings in the Facebook app management page, but can't see anything that would reduce the restrictions. I tried configuring the permissions to only-me, but this didn't help. I searched online and did not find anything that suggested a solution to this.
Any help would be great.
Edit:
Also, I am not sure why 'public profile' is mentioned in the message at all. Can't anyone access your public profile (since it is public)? So why mention it in the message? Or does the word 'access' mean more than simply being able to see the public profile?
Those are the very basic permissions that a user grants you by just logging in to your app - has always been that way, FB have just updated the message shown to the user to make it more clear what they actually share.
You can not ask for "less" permissions.

How can we require users to accept all permissions in our Facebook SSO?

Is there a way to simply require that any user signing up for our Facebook app to either accept ALL permissions requested or not at all? We do not want to give the options to accept certain parameters and reject others in Facebook SSO.
If the user really doesn't want to enable certain extended permissions. It's their choice; Facebook has spoken.
You are expected to check if the user has disabled permissions. If so, you should provide an error message that some of your application's functionality is disabled and ask them to re-enable those permissions again.
Yes, this makes it harder for developers, but you have to accept it.
First : you must try to get just permissions you need them (its facebook rule)
Second:yes you can do it, at first let users to install app with permissions which they want then check your app's permissions if user does not accepted some permissions redirect user to install page again (times & times)
https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=me%2Fpermissions

Facebook account to replace registration?

I'm new to all this. This is what i'm after and i'm sure it's possible.
I've got a script where people can register/login in to as members. What i'd like to do is tie it in so that it just uses Facebook users details for the registrations. I've managed to set it up to sign up and and complete a registration using a user's name and email.
What i'd like to do now is automatically log the user in if they're logged in on facebook, is this possible or will they need to click a login button that then takes them to their page? If they need to click a button to login, how do I go about getting the button to take their facebook details and log them in? Also what happens in regards to passwords on my site? Is that stored in the app somehow?
Ideally i'd like to use the popup version of verification rather than the iframe that i've got set up at the moment.
Cheers in advanced for any help for a n00b!
This is in fact possible. Although I for my part was never a fan of such things here's some human-readable (simplified) theory:
Facebook uses a system called OAuth ( http://de.wikipedia.org/wiki/OAuth ). That means, when you want to have the user login onto your site using Facebook you'll of course need to provide a button/facebook-login-frame (see documentation) that says "Log me in with Facebook" or so. You then access Facebooks API (more here: https://developers.facebook.com/ ) and basically tell Facebook who you are ("Hi I'm website XY"). While that happens your user is redirected to Facebooks "permission-landing-page". On that page he needs to confirm whether he is fine with your website accessing certain information (like his name). If he confirms your website receives an access-token granting you access to a subset of his user information which you can then use to personalize his expeirence on your website.
Check out facebooks documentation because they explain exactly your usecase in detail.
(here: https://developers.facebook.com/docs/authentication/ )
PS: You'll of course never have any access to his Facebook login/password. That's kind of the idea behind "delegating" the authentication via OAuth to Facebook. Facebook only provides you with an access token (bound to that particular user who logged in and granted your app/website permissions)

How can I reduce the information my application requests

When users invite friends to my application the friend gets a notification in the Facebook.
When they click this link they see a dialogue box asking them to approve my application.
How can I limit the information my app requests to almost nothing so I don't scare away potential visitors.
I don't want their email or friends list or to access their data at any time. I just want them to visit the site.
Ok Thanks to Changing the scope I have the dialogue down to this. Is there any way to get even less. I don't have any code that requires permissions. My call back just extracts the request id's.
Just don't require authentication on your landing page. Make it so that your landing page and primary canvas page do not require authentication and potential users can browse and check information about your app and look if it is what they are looking for.
Then once they make any significant action on your app when their user information is essential to proceed you can open an authentication dialog box. You can detect whether users already authenticated or not with the help of javascript API FB.getLoginStatus method:
https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
hope this helps
You are requesting extended permissions in the url you are directing them to for the allow. Remove anything from the querystring parameter "scope", currently you should see that
&scope=offline_access,email
or similar. Simply change that to
&scope=
Check the page on extended permissions for more info:
http://developers.facebook.com/docs/reference/api/permissions/
Your invitation is linked to application that needs extended permissions, you have two choice first one is change the link that don't needs extended permissions. Second one is if you don't use the data getting from permissions, remove the permissions from oauth dialog.
The second screenshot above it the minimum amount of permissions you can request.
It is not possible to request anything less than basic permissions. You have to have this in order for the user to be connected with your app, and so you can get their user id.