Ответить
1
Api facebook и Twitter API
Отправлено: 19 Июн 2012#1
Сейчас на работе очень много проектов, требующих интеграцию всевозможных API(Twitter, Facebook, Amazon, vk, flicker или как там его). Дело в том, что принципы работы со всеми этими АПИ схожи, но у каждого свои особенности и мне стоит только въехать в одно, тут же забывается другое. По сему я и решил начать серию заметок, напоминаний самому себе. Но и ценность для молодого поколения думаю будет. Когда материала будет достаточно, я оформлю все в нормальные статьи, но пока это просто заметки в виде форума))
Facebook API
У фейсбука есть выбор и это радует. Мы можем использовать как C# SDK, так и PHP SDK. Еще есть либа на JS, позволяющая все провернуть на стороне клиента, ну и само собой с плюшками в виде AJAX-а.
Но давайте по порядку. Для того, чтобы использовать возможности facebook API, нам надо зарегистрировать приложение . После чего мы получим заветные App id и Secret Key. Без них дальше ну никак.
В своих постах я буду опираться, в основном, на PHP, но возможны фрагменты и на JS.
PHP SDK (facebook API)
Давайте попробуем решить какую нибудь задачу. На пример, получить 20 фотографий пользователя. Для этого нам надо проверить есть ли у нас права на это и если их нет, запросить разрешение у пользователя. Когда пользователь наградит наше приложение полномочиями, мы сможем получать его данные. Скажу сразу, что так называемый AccessToken, который подтверждает наши права, может быть как временный, так и постоянный(offline). Но об этом немного позже.
Вот пример кода, написанный "на коленке" для теста API
facebook/facebook.php - адрес к PHP SDK.
scope - список привилегий, которые мы хотим получить для данного пользователя(права на что-то).
offline_access - говорит о том, что мы хотим получить перманентный токен для доступа к данным этого пользователя. Если не указать этот параметр, токен будет временный.
redirect_uri - адрес куда будет перенаправлен пользователь после авторизации на фейсбук.
'/me/albums' - запрос к API на получение альбомов текущего пользователя.
список всех возможных параметров.
Ну а тут можно тестировать запросы вместе с accessToken
.
Добавлено2012.06.19 16-04
Оказывается, с некоторых пор offline_access запрен(deprecated) и предполагается, что мы должны постоянно обновлять наши токены, например по крону. Но, на момент написания этого поста, можно было зайти в настройки своего приложения, вкладка Advanced и выставить Remove offline_access permission: - Отключить.
Facebook API
У фейсбука есть выбор и это радует. Мы можем использовать как C# SDK, так и PHP SDK. Еще есть либа на JS, позволяющая все провернуть на стороне клиента, ну и само собой с плюшками в виде AJAX-а.
Но давайте по порядку. Для того, чтобы использовать возможности facebook API, нам надо зарегистрировать приложение . После чего мы получим заветные App id и Secret Key. Без них дальше ну никак.
В своих постах я буду опираться, в основном, на PHP, но возможны фрагменты и на JS.
PHP SDK (facebook API)
Давайте попробуем решить какую нибудь задачу. На пример, получить 20 фотографий пользователя. Для этого нам надо проверить есть ли у нас права на это и если их нет, запросить разрешение у пользователя. Когда пользователь наградит наше приложение полномочиями, мы сможем получать его данные. Скажу сразу, что так называемый AccessToken, который подтверждает наши права, может быть как временный, так и постоянный(offline). Но об этом немного позже.
Вот пример кода, написанный "на коленке" для теста API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php include_once 'facebook/facebook.php';
$facebook = new Facebook(array(
'appId' => '331915366780960',
'secret' => 'br055db30fg6bf113feece692a7b343f',
'cookie' => true,
));
$session = $facebook->getUser();
$access = $facebook->getAccessToken();
if (!strpos($access, '|')) { // Дело в том, что функция getAccessToken() возвращает токен, если он есть и разделенные "|" AppId и SecretKey, если токена нет. По этому я сделал пока такую проверку, но думаю, что можно придумать, то-то по лучше
$params = array(
'access_token' => $access,
);
$res = $facebook->api('/me/albums', 'GET', $params);
print_r($res);
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'offline_access,user_photos,publish_stream',
'redirect_uri' => 'http://domain.com/fbauth.php',
));
echo "<a href='{$loginUrl}'>Login</a>";
die();
}?>
facebook/facebook.php - адрес к PHP SDK.
scope - список привилегий, которые мы хотим получить для данного пользователя(права на что-то).
offline_access - говорит о том, что мы хотим получить перманентный токен для доступа к данным этого пользователя. Если не указать этот параметр, токен будет временный.
redirect_uri - адрес куда будет перенаправлен пользователь после авторизации на фейсбук.
'/me/albums' - запрос к API на получение альбомов текущего пользователя.
список всех возможных параметров.
Ну а тут можно тестировать запросы вместе с accessToken
.
Добавлено2012.06.19 16-04
Оказывается, с некоторых пор offline_access запрен(deprecated) и предполагается, что мы должны постоянно обновлять наши токены, например по крону. Но, на момент написания этого поста, можно было зайти в настройки своего приложения, вкладка Advanced и выставить Remove offline_access permission: - Отключить.
Отредактировано автором 3 Мая 2012
Я горжусь тем, что создал . И люблю нашу команду)
1
Зарегистрируйтесь или авторизуйтесь что бы писать
Сейчас online: 8. Зарегистрированных: 0. Гостей: 8.
