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

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

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

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

  1. В поле Callback URL вводим значение http://siteurl.com/confirm.php
  2. 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 <img src=\"{$twitterInfo->profile_image_url}\"><hr />";
print 'token '. $token->oauth_token .'<br />';
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 '<a href="' . $twitterObj->getAuthorizationUrl() . '">Authorize with Twitter</a>';

secret.php пока пуст.

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

<?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' => 'Проверяем твиттер'));

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

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

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

  1. Тоже пользовался старым способом до недавнего времени, а сейчас перешёл на библиотеку twitteroauth, и пошёл немного другим путем. Переходим по ссылке и получаем пин, вводим его у себя в скрипте и постим сообщения 🙂 AccessToken и AccessTokenSecret автоматом заносятся в БД 🙂

    Aravak может знаешь по какому принципу работают боты с сервиса optimizatoru.ru? которые саморазвивающиеся… пример @wir_tel — бот 🙂

    • Я так понимаю пин генерится для приложений, которые работают как клиент?
      С ботами все несложно, все-таки я искусственный интеллект закончил 🙂 но думаю там не он, а просто куча предусмотренных вариантов, дешевка в общем

  2. Да, pin генерируется. Мне просто это более удобно. Да и я сначала побоялся что авторизация будет сбиваться если другим способом подключатся, но вроде как нет разницы 🙂 и там и там выдаются постоянные токены.

    Интересно было бы почитать про ботов 😉 хотя бы про дишёвку… мне то вообще кажется что сообщения парсят у других тви-аккаунтов, но проверял поиском фраз — один результат… т.е. как бы не краденые 🙂 но бывает только одно сообщения в несколько аков(ботов) запощено…

  3. Статья копипаст переведенный зарубежного автора… и не указал.
    Знаю потому что читал оригинал.

    • ссылку на оригинал или пидорас?
      здесь описан мой личный опыт и я даже могу указать для какого проекта все это сделано методом тыка!

Обсуждение закрыто.