Бортовой журнал Ктулху

Работа с API Twitter

Пример получения информации текущего пользователя Twitter через API.

 

SDK

Скачиваем библиотеку для работы с Twitter. Их много, выбираем по своему вкусу и задачам. Эта мне больше понравилась документированием и относительной простотой.

Ключи

Регистрируемся если еще не зарегистрированы и переходим в зону для разработчиков.

Создаем приложение на странице apps.twitter.com.

screenshot 2016 08 02 10 40 39 1 1

Заполняем нужные поля.

screenshot 2016 08 02 10 44 29

Создаем токен доступа.

screenshot 2016 08 02 11 36 20 1

 

Если все хорошо, переходим к скрипту.

Получение профиля

Создаем какой-нибудь файл и подключаем к нему API:

require_once ('src/codebird.php');
\Codebird\Codebird::setConsumerKey('CONSUMER_KEY', 'CONSUMER_SECRET'); // static, see README
$cb = \Codebird\Codebird::getInstance();
$cb->setToken('TOKEN', 'SECRET');

В принципе, все написано в документации но для примера я напишу как получить информацию текущего пользователя.

Авторизация:

session_start();
if (!isset($_SESSION['oauth_token'])) {
 // get the request token
 $reply = $cb->oauth_requestToken([
 'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
 ]);
// store the token
 $cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
 $_SESSION['oauth_token'] = $reply->oauth_token;
 $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
 $_SESSION['oauth_verify'] = true;
// redirect to auth website
 $auth_url = $cb->oauth_authorize();
 header('Location: ' . $auth_url);
 die();
} elseif (isset($_GET['oauth_verifier']) && isset($_SESSION['oauth_verify'])) {
 // verify the token
 $cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
 unset($_SESSION['oauth_verify']);
// get the access token
 $reply = $cb->oauth_accessToken([
 'oauth_verifier' => $_GET['oauth_verifier']
 ]);
// store the token (which is different from the request token!)
 $_SESSION['oauth_token'] = $reply->oauth_token;
 $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
// send to same URL, without oauth GET parameters
 header('Location: ' . basename(__FILE__));
 die();
}
// assign access token on each page load
$cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);

Теперь можно получить данные:

echo "<pre>";
$reply = $cb->account_verifyCredentials();
print_r($reply->screen_name);
$username = $reply->screen_name;
$reply = $cb->users_show("screen_name=".$username);
print_r($reply->profile_image_url);
echo "</pre>";