Использование токена доступа PhoneGap на Facebook на стороне сервера - PullRequest
0 голосов
/ 13 декабря 2011

У меня Плагин Phonegap Facebook отлично работает в моем приложении для Android. Этот плагин использует поток Javascript на стороне клиента Facebook. Однако я хотел бы загружать фотографии в FB со стороны сервера, а не со стороны клиента, поскольку это намного (намного) более эффективно.

Можно ли использовать токен доступа Facebook, сгенерированный со стороны клиента, на стороне сервера? (Кстати, у меня PHP SDK Facebook отлично работает на отдельных веб-страницах.)

Я получаю "(#200) Permissions Error", пытающуюся осуществить это.

Если токен на стороне клиента не может использоваться на сервере, какие-либо другие предложения? Я не знаю, как сгенерировать серверный токен Facebook из приложения Phonegap.

Изменить: Похоже, что вы на самом деле можете использовать клиентский токен Facebook на сервере. Это просто вопрос обновления до последней версии Facebook PHP SDK и использования функции $facebook->setAccessToken() с токеном, отправленным из Javascript.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2011

Да, вы можете использовать клиентский токен на стороне сервера. Обычно, когда пользователь входит в Facebook, fb создает токен доступа в cookie, к которому вы можете получить доступ как на клиенте, так и на сервере, и когда пользователь вышел из системы, cookie являетсяуничтожен и токен доступа становится недействительным.

И чтобы загрузить фотографии на Facebook, я использовал следующий код:

// $ friends - это массив идентификаторов друзей, которые будут отмечены на фотографии

// $ x и$ y - позиция тегов.

for($i=0;$i<sizeof($friends);$i++)
{
$tags[] =  array(
      'tag_uid'=>$friends[$i],
      'x'      => $x[$i],
      'y'      => $y[$i],
 );
}



$photo_details = array(
'access_token'=>$access_token ,
    'message'=> 'Any message',
'tags' => $tags
);

$file=$photo_name; //Example image file

$photo_details['image'] = '@' . realpath($file);

$upload_photo = $facebook->api('/me/photos', 'post', $photo_details);
0 голосов
/ 13 декабря 2011

Токен доступа действителен через клиента или сервер.На фейсбуке конец это то же самое: запрос через HTTP.

Если вы не можете загружать фотографии, убедитесь, что у вас есть соответствующие разрешения пользователя для вашего приложения.

Если вы пытаетесь выяснить, какие графические API-вызовы вам нужны, хороший стартместо - консоль javascript: https://developers.facebook.com/tools/console/

Здесь вы можете увидеть в javascript, какие звонки выполняются для чтения из его API, или создания ленты новостей или загрузки.Вы будете использовать те же URL-адреса графика и переменные, используя код на стороне сервера.

...