Работа с API Twitter
2016-08-02
Пример получения информации текущего пользователя Twitter через API.
SDK
Скачиваем библиотеку для работы с Twitter. Их много, выбираем по своему вкусу и задачам. Эта мне больше понравилась документированием и относительной простотой.
Ключи
Регистрируемся если еще не зарегистрированы и переходим в зону для разработчиков.
Создаем приложение на странице apps.twitter.com.
Заполняем нужные поля.
Создаем токен доступа.
Если все хорошо, переходим к скрипту.
Получение профиля
Создаем какой-нибудь файл и подключаем к нему 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>";