войти в систему с одного домена и после этого получить объект facebook в другом домене, используя php sdk 3.1.1 - PullRequest
0 голосов
/ 29 февраля 2012

Я вхожу в систему и выполняю процессы аутентификации из одного домена (localhost)

$config = array(
    appId'  => $APP_ID,
    'secret' => $APP_SECRET
);
$facebook = new Facebook($config);
$currentUserId = $facebook->getUser();

Это отлично работает, и я получаю токен доступа и идентификатор пользователя. После этого. из браузера я делаю пост действие в файл php в удаленном домене в удаленном php я использую тот же код, тот же APP_ID и тот же APP_SECRET

$config = array(
   'appId'  => $APP_ID,
   'secret' => $APP_SECRET
);
$facebook = new Facebook($config);
$currentUserId = $facebook->getUser();

это не так! работать и получить $ currentUserId = 0 и это моя проблема

Я могу использовать (но не хочу):

 $facebook->setAccessToken($at);

с токеном доступа, полученным из домена localhost, он работает, и я получаю идентификатор пользователя

В старых SDK 2.0 я видел эту функцию setBaseDomain Есть ли способ, которым я могу использовать его в 3.1.1?

1 Ответ

2 голосов
/ 29 февраля 2012

вот что я делаю - поэтому, когда вы делаете запрос к другому домену, проходите вдоль access_token, когда вы делаете вызов API, делаете что-то вроде этого -

$config = array(
   'appId'  => $APP_ID,
   'secret' => $APP_SECRET
);
$facebook = new Facebook($config);

$args['access_token'] = $_POST['token'] // or $_GET[];
$me = $facebook->api('/me', 'get', $args);
print_r($me);

Итак, что это делает, то говоритFB Я знаю, что запрос исходит с другого сервера, но у меня есть действительный токен, пожалуйста, примите эту жертву, чтобы отметить Цукерберга и позволить мне что-то делать.Он примет, и вы можете делать как вам угодно:)

...