Аутентификация пользователя на вкладке страницы

Я пытаюсь создать вкладку на странице Facebook, где люди могут голосовать за свое любимое видео или музыкальный трек из набора встроенных файлов. Мне нужно получить уникальный идентификатор от каждого пользователя, чтобы убедиться, что они могут проголосовать только один раз. Signed_request содержит идентификатор пользователя только в том случае, если он авторизовал мое приложение.

Я пытался, чтобы пользователи авторизовали мое приложение с помощью javascript API FB.login(), но получаю сообщение об ошибке:

Произошла ошибка с Remix // Rework Vote. Пожалуйста, попробуйте позже

Код ошибки API: 191

Описание ошибки API: указанный URL-адрес не принадлежит приложению

Сообщение об ошибке: Недопустимый redirect_uri: данный URL-адрес не разрешен конфигурацией приложения.

Насколько я знаю, я не устанавливал никаких URL-адресов перенаправления. Мне нужно установить это где-то, или это неправильный подход, чтобы заставить пользователя аутентифицировать мою вкладку страницы?


person rjmunro    schedule 20.01.2012    source источник
comment
Правильно ли настроен домен приложения в настройках приложения?   -  person Juicy Scripter    schedule 20.01.2012
comment
@JuicyScripter Нет. Это не позволит мне установить один: Error You have specified an App Domain but have not specified a Site URL or a Mobile Web URL [domain] must be derived from your Site URL or your Mobile Web URL. Я не вижу, где установить эти параметры, возможно, потому, что я использую только вкладку страницы, а не сайт или мобильный сайт.   -  person rjmunro    schedule 20.01.2012


Ответы (2)


Вы должны указать как «URL-адрес сайта» (или «URL-адрес мобильного Интернета»), так и «Домен приложения», чтобы использовать поток OAuth...

Узнайте, где заполнить подробности на https://developers.facebook.com/docs/authentication/#redirect-uris

person Juicy Scripter    schedule 20.01.2012
comment
Должен ли я использовать поток OAuth или есть другие допустимые способы в контексте страницы холста на вкладке страницы? У меня нет особого желания использовать OAuth, мне просто нужно получить уникальный идентификатор от Facebook, и FB.login(), судя по найденной мной документации, казалось бы, то, что нужно. - person rjmunro; 23.01.2012
comment
FB.login использует поток OAuth, поэтому да, вам нужно использовать OAuth для аутентификации пользователя. - person Juicy Scripter; 23.01.2012
comment
Конечно, но нужно ли мне использовать FB.login или есть другие способы? Насколько я знаю, FB.login может быть совершенно неправильным для вкладки страницы, это просто первое, что я обнаружил, что это выглядело смутно правильным. - person rjmunro; 23.01.2012
comment
Ссылка начинается с Когда redirect_uris указаны в потоках проверки подлинности. Я не указываю URI перенаправления. Я просто вызываю FB.login с первой страницы холста на вкладке моей страницы. - person rjmunro; 23.01.2012

Поэтому мне удалось заставить это работать, отметив «Приложение на Facebook» в настройках приложения и установив Canvas URL и Secure Canvas URL так же, как эквиваленты URL-адреса вкладки страницы.

Это сработало, несмотря на то, что это не полноценное приложение, а всего лишь вкладка страницы, и оно не будет работать как приложение, если оно не находится на странице-контейнере.

Я предполагаю, что это ошибка в Facebook - пользовательский интерфейс подразумевает, что у вас может быть приложение только для вкладок страницы. В документации не сказано, что вы не можете, и я не могу придумать вескую техническую причину, по которой URL-адрес вкладки страницы не будет рассматриваться как действительный URL-адрес.

Спасибо @julio-santos за указание на Facebook - Сообщение об ошибке: redirect_uri не принадлежит приложению, что похоже на ту же проблему в немного другом контексте.

person rjmunro    schedule 23.01.2012