whoah
whoah

Reputation: 4443

Permissions for application

I set User & Friend Permissions on my application, to get user email on website. I get this info when I click Preview Login Dialog:

THIS APP WILL RECEIVE:

Your basic info
Your email address ([email protected])
Your birthday
Your relationship details
Your photos

when I tried to log in on my website, application needs only this information:

THIS APP WILL RECEIVE:

Your basic info

Why? Why doesn't the main application have the same permissions as the preview?

Regards

EDIT:

I'm using Auth from this tutorial: http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc - and code has not changed in my project.
Honestly, I don't want to change authorization methods, because I also want to provide Twitter login, and this mechanism is perfect for me.
I just want to add for Facebook "scope=email,publish_stream".

I discovered, that when I put this query manually when my website redirect me to facebook application (&scope=email,publish_stream), everything works perfect. Is there any solution to do this on back-code?

Upvotes: 1

Views: 5341

Answers (3)

whoah
whoah

Reputation: 4443

Problem solved!

If you are using this tutorial : http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc

Insert in your Package manager console this command update-package DotNetOpenAuth.Core

Now your application will automatically ask for user e-mail - you don't have to change anything.
Here you will find result - result.UserName

Upvotes: 1

Stéphane Bruckert
Stéphane Bruckert

Reputation: 22873

The app detail page in the App Center displays the permissions required for new users. It can be considered a version of the Login Dialog in this capacity, making it easy for new users to install your app directly from the App Center. You can configure the set of permissions your app requires in the Settings > Permissions tab.

Source: https://developers.facebook.com/docs/guides/appcenter/#authorization

So, these permission settings only apply when you've got an app in the App Center to configure, which case it is useful to:

  • show what permissions the user will be asked before the user decides to use the app,
  • avoid any additional Login Dialog.

Because your app don't (I guess) figure in the App Center, you have to ask for permissions using the usual way: from the code. To do so, read: How to use user permissions with Facebook C# SDK

Edit: Forget about the App Center for now. It is the last step you should do. The App Center gathers great and famous apps only, which all work perfectly and that Facebook employees need to accept:

Not all apps will appear in the App Center, and we reserve the right to remove apps that do not meet a high quality bar. Once you’ve created your app detail page, we’ll review it and your app to make sure it meets our eligibility, submission, and quality guidelines.

So, asking for your app to appear on the App Center really is the last thing you should think about.

Upvotes: 2

ThePCWizard
ThePCWizard

Reputation: 3348

Stéphane Bruckert is right, the permissions you add in the settings page of your app is only applicable when a user visits your website through app center.

To ask for permission from within your site you've to add those permissions in the scope parameter of your Login URL.

fb = new FacebookClient();

    var loginUrl = fb.GetLoginUrl(new
    {

        client_id = "app_id",

        redirect_uri = "http://www.example.com/Facebook.aspx",

        response_type = "code",

        scope = "email,publish_stream" // Add other permissions as needed

    });
Response.Redirect(loginUrl.AbsoluteUri);

Here's good tutorial for using Facebook C# SDK.

For your question in the comments, you can publish your app in the app center by filling all the details on the App Details page and finally submitting it for review.

Upvotes: 0

Related Questions