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

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.

Related

Get permissions in the facebook admininterface without a legal company

How can I get an access token and an app token?
I have registered my app through this site https://developers.facebook.com/ I chose "business"
What do I want?
I want to get an access to posts of groups/users and comments. At first itll be enough if I will have an access only to open pages. Im not a company and when I tried to get it through the graph api (https://developers.facebook.com/tools/explorer/) I got the following error 'This endpoint requires the 'pages_read_user_content' permission or the 'Page Public Content Access' feature'. I chose these items(Facebook App->my app; User or Page->App token).
I tried to get these permissions in the admin interface of my app in FB in this section "Permissions and Features". Having send these requests it was written "You will need to complete this step in addition to App Review before you can access live data.
Business verification: You'll need to connect your app to a Facebook Business Manager account and upload an official document showing your business or organization's name and physical address.".
As I mentioned before Im not a company. May someone recommend me what to do next? Should I create a new app and choose something else instead of "Business"? Or should I send a request to the FBs support and explain to them my situation, if "yes", how can I find this support contacts? Actually I didnt find support contacts on their site, only the community form and their support associated with payment questions.
I tried to ask in their official community, but they didnt answer for 17 days
https://developers.facebook.com/community/threads/224348066049560/?post_id=224348069382893

How to make a Facebook Test Page have an Instagram Business account?

When you're trying to apply for Facebook Permissions for your application, you may encounter some permissions that requires App Review. In my case, I need to use the Facebook Login for Business Accounts, so I need to apply for Facebook's App Review.
In order to make an App Review for Facebook, you will need to provide step-by-steps videos and guides for Facebook testers to test for themselves. However, it does requires a Test User to do this.
A Test User can have a Test Page linked to it, and a Test Page is capable to link an Instagram Account created using this Test User. However, for some reason, I'm not able to convert this created Instagram Account as a Business Instagram Account using the Test User. I tried to link it using my application flow, but the "Convert to Business Profile" button does nothing, and if I try to do this in the Facebook Test Page account, the form that ask for Contact Information always throws a message "An Error Ocurred".
So, I'm unable to create an Instagram Business for testing and also not allowed to provide a real account because they don't allow this, as they explicitly says (Which I can agree with):
Note: Do not provide your personal Facebook account credentials.
As I'm unable to find a way around this, and I can't see to find any answer on the internet... I wonder if somebody could help with this one.
So, it seems it's just a Facebook bug (Just as one I was experiencing before this one, where after updating a Test Account permissions, the permissions were still not working properly) where the Test Account seems to be kind of locked in a state were you can basically do nothing more with it than what you have already done... So I end up creating a new Test Account and doing the same process, but this time it worked.
I had the same problem, and to fix it, I had to follow these steps :
Create a Facebook test user for your app.
Once the user has been created, click the three dots at the right, then edit its password, choose something that you will remember.
login as this test user.
Edit the user parameters and set its email address as main/default contact address (you need to type in the password of the user). It seems, by default, test user do not have default contact and this is required to login with instagram.
Now go to instagram.com, and create a new account using "login with facebook"
Fill in the name, password (you need to remember it), and userid.
Send the form, and you will get some error telling you to retry later. Ignore it, your account should actually be created.
Now switch to the instagram mobile app (web interface might not work, I was stuck in a redirect loop) so you can login to instagram using the email address of the facebook test user account (the one you used in point 4) and the IG password (you typed in point 6).
Hope it helps anyone stuck in this hell like I was for 2 days.

About the "Login with Facebook" mechanism

I am not sure I fully understand the "Login with Facebook" mechanism, and I need to make sure my understanding is correct (or perhaps it is not):
In order to deploy a "Login with Facebook" in my website, I must also have a Facebook application (?)
The first time anyone uses "Login with Facebook" in my website (assuming they are already logged in Facebook itself), they must go thru the Facebook dialog of approving the application. There's no way around that (?)
Anyone who successfully uses "Login with Facebook" in my website has his/her public Facebook data available to my website (?)
And the last one:
Legally speaking, do I have to name the button (or whatever) "Login with Facebook" (or similar), or can I name it any way I want (say, "Go ahead and work")?
Correct. That Facebook application is how Facebook tracks information about you to provide to the users, where to redirect users after authorizing your application, etc. It's essentially the integration point between your application and Facebook.
Correct. They may also be prompted to re-approve again in the future.
You would have access to anything which they permit you to have access. By default this includes basic profile data, but there are lots of other permissions available as well. Keep in mind that, if you request additional permissions, they may allow basic permissions but then pick-and-choose which additional permissions. So it's not always a safe assumption that just because they've logged in with Facebook to your application that they've authorized everything.
And the last one:
"Legally speaking..." - Not our department, sorry. For any legal advice you'll want to consult an attorney.
1.) Yes you must have and App ID and App Secret from your Facebook App. (Facebook Developers)
2.) And yes again, you can not work around that dialog, a user must grand your app the permission to go ahead.
3.) You will get the data that you Required via your Application. Then in turn this request is shown in the Dialog when a user log's in to your Website, if they grand you the access, its all yours :).
4.) You can name the button anything you want :)

pyrocms social module: how to register new user with facebook connect

I'm still new to CI and PyroCMS, and am trying to implement a Facebook login using the Social module in a custom module, which looks like it does everything I want, but I'm clearly missing some basics (I can't find any documentation other than the brief readme)!
So far, I've watched the intro video, and have enabled Facebook successfully. I can connect via FB and see FB listed in /social/linked, but some confusion exists in my mind between the two user groups I've got: admin and user.
The flow I'm trying to construct is:
user arrives at the site and is presented with a survey
user fills in the survey, then is asked to signup (I understand that this is unconventional)
/signup has a facebook connect button, supplied by the social module
user clicks the connect button, and grants permission in facebook's popup window
user should be directed back to /signup, (or maybe redirected to /user/registration) with some details filled in from facebook (eg. email, name)
on submit, user should be added to the users table, as a member of the 'users' group (not admin) with no email activation required
an email is sent, thanks page is displayed
on returning to the site, the user should access their on-site profile using facebook connect.
I've read a bunch of threads on the subject, which have shaped these expectations...
Here's where I'm at:
user arrives, fills in survey, clicks the connect button
user is redirected to the homepage, which displays a standard page (not handled by my module). I need to return to /signup!
Based on this, I've tried setting:
$this->session->set_userdata('redirect_to', '/signup');
in what I believe is the correct controller method (checks to see if the user is logged in before sending the email, then calls template build to display the social buttons), to no avail.
(edit: I now see that the code above relates to the user module, not the social module.. maybe i can transplant some changes...)
My questions:
am i on the right track, or going about this the wrong way?!
am i right in thinking that the FB account will be matched with an existing user if the email addresss exists in the system?
I have only one FB account, which I is authorised for the app, and I'm using to connect with as a user - will this work, or do I need a separate FB account to test as user?
Other notes:
I am testing the site in Chrome, logged in as admin in Firefox.
Facebook is my testcase, I'm looking at supporting FB, LinkedIn, google and Twitter eventually.
Phew! Grateful for any feedback, Tim
I will try to answer some of your questions since i'm currently experimenting with the exact same social module as well and with some addons to it.
am i right in thinking that the FB account will be matched with an
existing user if the email addresss exists in the system?
Yes you are. I checked it myself while troubleshooting the fact that my google (gmail address) could'nt connect while my hotmail (registered email) could. You will have to sync your emails in all your social sites, change the loginsystem (allowing username login for example) or manually connect multiple emails in your account settings..
I have only one FB account, which I is authorised for the app, and I'm using to connect with as a user - will this work, or do I need a separate FB account to test as user?
I suggest u let someone with another FB account test the system (better save then sorry) but in my case I didn't have any troubles using other (normal) accounts to log in.
am i on the right track, or going about this the wrong way?!
This was your first question, but I'll answer this as the last on since I didn't test is myself:
The Facebook App has a setting called "Site URL". This is the url to which will be redirected. Simply change it to the page you wish it to be. You can also try to change the following lines in social/controllers/social.php:
Line 245 (redirect: user is logged in after FB connect)
redirect($this->input->get('success_url') ? $this->input->get('success_url') : 'social/linked');
Line 283 (redirect: user has to fill in some additional fields to complete registration)
redirect('users/register');
Good luck!
The intro video shows off the entire extent of the social module. Frontend registrations, frontend user account linking, and backend account linking for the entire system.
If you wish to integrate custom functionality, custom user flows and other stuff as listed in your question then you will need to do a little custom work with the module. Hack it, extend it, send in some pull requests, whatever, but sadly it cannot do "everything to integrate with everywhere ever" out of the box. :-/

Adding a Facebook app administrator who is not a friend

Having searched through this section many times, I am struggling to find an answer to what I thought would be simple:
Having created an app, I cannot add other facebook verified developer accounts as administrators of the app without first friending them.
This is a professional app (we are using it to provide login through Facebook services), and I cannot find a way to add other colleagues without making them into facebook friends.
I have tried:
Roles > Administrators > Add:
Email address
UID
Link to Profile URI
Name search
I either get back nothing, or a notice that the user is not a facebook user (though they patently are, I can add them as a friend after all).
1) You must acess the apps via: https://developers.facebook.com/apps and select your app. The UI has recently been updated:
2) If the user is not your friend you must add them using facebook User Id otherwise it will not work.
This can be obtained via http://findmyfacebookid.com/ which wil turn thier profile url into an id.
3) The user must also have verified their account. However it will tell you this when you try to add them.
4) They will then receive a request which they must accept.
Did you check with the user to see if they got the notification? (e.g. you should receive a request from me)
This is how a pending request looks.