2013-03-12 3 views
1

Я установил User & Friend Permissions в мое приложение, чтобы получить электронное письмо пользователя на веб-сайте. Я получаю эту информацию, когда я нажимаю Preview Login Dialog:Разрешения для использования

это приложение ПОЛУЧИТ:

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

, когда я пытался войти на моем сайте, приложение нуждается только эта информация:

ЭТО ПРИЛОЖЕНИЕ ПОЛУЧИТ:

Your basic info 

Почему? Почему основное приложение не имеет таких же разрешений, как и предварительный просмотр?

С уважением

EDIT:

Я использую Auth из этого урока: http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc - и код не изменился в моем проекте.
Честно говоря, я не хочу менять методы авторизации, потому что я также хочу предоставить вход в Twitter, и этот механизм идеально подходит для меня.
Я просто хочу добавить для Facebook «scope = email, publish_stream».

Я обнаружил, что, когда я ставил этот запрос вручную, когда мой сайт перенаправлял меня в приложение facebook (&scope=email,publish_stream), все работает отлично. Есть ли какое-либо решение для этого в обратном коде?

ответ

1

Проблема решена!

Если вы используете этот учебник: http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc

Вставьте в ваш Package manager console эту команду update-package DotNetOpenAuth.Core

Теперь ваше приложение будет автоматически попросить пользователя электронной почты - вам не нужно ничего менять.
Здесь вы найдете результат - result.UserName

2

На странице сведений о приложении в Центре приложений отображаются разрешения , необходимые для новых пользователей. В этом качестве можно считать версией Login Dialog, что позволяет новым пользователям устанавливать приложение прямо из App Center. Вы можете настроить набор разрешений , необходимых вашему приложению на вкладке «Настройки»> «Разрешения» .

Источник: https://developers.facebook.com/docs/guides/appcenter/#authorization

Таким образом, эти параметры разрешений применяются только когда у вас есть приложение в App Center, чтобы настроить, что случай, полезно:

  • шоу какие разрешения пользователю будет предложено до пользователь решает использовать приложение,
  • избежать любого дополнительного диалогового окна входа.

Поскольку ваше приложение не имеет (я думаю) фигуры в Центре приложений, вы должны просить разрешения, используя обычный способ: из кода. Для этого, прочитайте: How to use user permissions with Facebook C# SDK

Edit: Забудьте о App Center на данный момент. Это последний шаг, который вы должны сделать.App Center собирает только большие и известные приложения, которые все работают отлично, и что сотрудники Facebook должны признать:

Не все приложения будут появляться в App Center, и мы оставляем за собой право удалять приложения, которые не делают встретить бар высокого качества. После того, как вы создали страницу с подробными сведениями о приложении, мы рассмотрим ее и ваше приложение, чтобы убедиться, что оно соответствует нашим правилам отбора, подачи и качества.

Итак, прося приложение появится на App Center действительно является последняя вещь вы должны думать о.

+0

благодарит за отвечу. Но объяснение о C# sdk и передаче дополнительной информации все еще не ясны для меня - есть ли у вас еще несколько ссылок? – whoah

+0

И как я могу попасть в AppCenter? И этот центр решает мою проблему? – whoah

+0

Нет, забудьте о Центре приложений. Я обновил свой пост с дополнительной информацией об этом. Теперь вам нужно выполнить код, который вы сделали для входа пользователя с правильными разрешениями. Прежде чем дать вам какой-то код, который объясняет это, почему бы вам не показать нам код, который вы уже внедрили, чтобы сделать логин пользователя на своем веб-сайте? –

0

Stéphane Bruckert прав, разрешения, которые вы добавляете на странице настроек вашего приложения, применимы только в том случае, если пользователь посещает ваш сайт через центр приложений.

Чтобы запросить разрешение на вашем сайте, вы должны добавить эти разрешения в параметр scope вашего 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); 

Вот хороший учебник по использованию Facebook C# SDK.

На ваш вопрос в комментариях вы можете опубликовать свое приложение в центре приложения, заполнив все детали на странице сведений о приложении и, наконец, отправив их на рассмотрение.