Аутентификация на холсте Facebook по рефералу - PullRequest
0 голосов
/ 15 января 2012

Я на некоторое время застрял с этой проблемой, и я просто сдался сегодня, я понял, что мне очень нужна помощь, и я не смог найти ни одной публикации, посвященной аналогичной проблеме .. так что

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

Так что сейчаскогда вы посещаете мое приложение на Facebook, на apps.facebook.com/canvas-page вы можете увидеть мое приложение.Однако у меня проблемы с аутентификацией.

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

Итак, насколько я понял, я установил его так, чтобы новые пользователи могли видеть диалог аутентификации, а затем посещать мое приложение.При посещении моего приложения я хочу, чтобы мое приложение могло получить доступ к информации, как я уже говорил выше.Однако на своей странице холста я сделал следующее для кода в php, и ничего больше, я хочу, чтобы я мог видеть, какая информация передается в мое приложение по ссылке в Facebook из диалога аутентификации:

    <?php 
    print_r($_GET);
    echo "\n";
    print_r($_POST);
    ?>

К сожалению, это дает мне пустые массивы, и ничего больше.

Все, что мне действительно нужно для моего приложения Facebook, это access_token и идентификатор пользователя, хотя я почти уверен, что могу получить доступ к идентификатору текущего пользователя, посетив graph.facebook.com/me?access_token=[acdox tokenпредоставлено откуда-то]

, так что это моя первая проблема, вторая проблема заключается в том, что когда я выхожу из Facebook и захожу на apps.facebook.com/canvas-page, меня не просят войти, почему это так?Нужно ли перенаправлять на Facebook с помощью JavaScript, чтобы войти в систему, а затем обратиться к моему приложению?

В настоящее время это мои настройки (запросите дополнительную информацию, чтобы я мог предоставить их вам) Настройки> Диалог аутентификации> Аутентифицированные рефералы> Разрешение пользователя и друга = Настройки электронной почты> Диалог аутентификации> Аутентифицированные рефералы> Параметр токена аутентификации =? Code =

Настройки> Дополнительно> Миграция = ВСЕ ВКЛЮЧЕНО

1 Ответ

0 голосов
/ 15 января 2012

FB использует Подписанный запрос для отправки данных в ваше приложение (не $ _POST, не $ _GET). Об этом есть глава под названием signed_request Parameter в Sample Canvas App .

Используя php-sdk , вы можете получить его так:

$signed_request = $facebook->getSignedRequest();

var_dump($signed_request);

array (
  'algorithm' => 'HMAC-SHA256',
  'expires' => 1326632400,
  'issued_at' => 1326628636,
  'oauth_token' => '***',
  'page' => 
  array (
    'id' => '***',
    'liked' => false,
    'admin' => true,
  ),
  'user' => 
  array (
    'country' => 'cl',
    'locale' => 'en_US',
    'age' => 
    array (
      'min' => 21,
    ),
  ),
  'user_id' => '***',
)

Кроме того, вы можете передать параметр с именем app_data через URL:

"http://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here"

Вы получите его и в $signed_request.

...
array (
  'algorithm' => 'HMAC-SHA256',
  'app_data' => 'any_string_here',
  'expires' => 1326636000,
  'issued_at' => 1326629411,
...

Пожалуйста, прокомментируйте! Спасибо .-

...