Отправка сообщений в твиттер через OAuth — пошаговая инструкция

Обновить статус в твиттере, используя php, не так уж и сложно. БЫЛО. Старую добрую схему по отправке сообщений в твиттер о которой я писал ранее отменили и оставили только работу через OAuth. Сам по себе переход скорее оправдан, да и все не так уж сложно, учитывая кучу примеров и документации, но опять же, лично до меня некоторые вещи дошли не сразу.

Первое, что нам нужно сделать, это открыть твиттер и авторизоваться под аккаунтом, от которого мы будем слать сообщения.
Второе — нам нужно создать новое приложение. Для этого открываем страницу http://dev.twitter.com/apps/new и заполняем поля.

На данном этапе я остановлюсь подробнее.

В поле Callback URL вводим значение http://siteurl.com/confirm.php
Default Access type выбираем Read & Write
Остальные пункты на ваше усмотрение.

Третье что мы делаем — это качаем замечательную библиотеку с http://github.com/jmathai/twitter-async. В нее входит файл simpleTest.php в котором вроде как все просто и наглядно, но тут и кроется главный подвох. Забейте на этот файл. Удалите сразу, чтобы не путался под ногами.

Четвертое. Создаем в корне нашего сайт три файла: secret.php, confirm.php (смотрим в пункт 2) и start.php.

Теперь листинги этих файлов.

confirm.php

include 'EpiCurl.php';
include 'EpiOAuth.php';
include 'EpiTwitter.php';
include 'secret.php';

$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);

$twitterObj->setToken($_GET['oauth_token']);
$token = $twitterObj->getAccessToken();
$twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);
$twitterInfo= $twitterObj->get_accountVerify_credentials();
$twitterInfo->response;
print "Your twitter username is {$twitterInfo->screen_name} and your profile picture is profile_image_url}\">
"; print 'token '. $token->oauth_token .'
'; print 'secret '. $token->oauth_token_secret; confirm.php include 'EpiCurl.php'; include 'EpiOAuth.php'; include 'EpiTwitter.php'; include 'secret.php'; $twitterObj = new EpiTwitter($consumer_key, $consumer_secret); echo 'Authorize with Twitter'; secret.php пока пуст.

Пятое. Идем в свой аккаунт твиттера и переходим на http://twitter.com/apps, далее выбираем наше приложение, что мы создали в пункте 2 и видим значения Consumer key и Consumer secret. Берем эти значения и в файле secret.php пишем:

$consumer_key = 'значение поля  Consumer key';
$consumer_secret = 'значение поля Consumer secret';

Шестое. В браузере открываем http://siteurl.com/start.php, переходим по появившейся ссылке, далее нажимаем Allow и ждем редиректа на наш confirm.php.

Седьмое. Попав на страницу confirm.php мы должны увидеть свое имя, картинку и две строки со значение token и secret.
Берем эти значения и дописываем в secret.php следующие строки:

$token = 'значение token';
$secret = 'значение secret';

И вот только теперь мы можем создать файл который будет обновлять наш статус в твиттере:

$twitterObj = new EpiTwitter($consumer_key, $consumer_secret, $token, $secret);
$status = $twitterObj->post('/statuses/update.json', array('status' => 'Проверяем твиттер'));

К слову, данная библиотека имеет огромные возможности и обновление статуса не самая интересная из них — есть с чем поиграться.

Кстати, кто пользуется твиттером может зафоловить меня — aravak, а чтобы получить полезные советы по созданию и ведению блога можно зайти на новый и интересный сайт по этой теме.