Прочитав статью Makaveli Простой сервис уведомлений через Twitter, решил тоже сделать что-нибудь для twitter.com.
Не буду описывать как я пришёл к выводу о написани автопостера (бота) для твиттера, который занимался бы мотивационным «постингом». Суть сервиса в том, что любой пользователь, добавившийся в читатели, каждый час получает твит, мотивационного характера. (Кому интересно в твиттер — это @MotivatorForYou).
Это лишь пример того, как можно использовать twitter api для автоматизации написания твитов.
Итак, что понадобилось:
- Библиотека PHP для работы с twitter api (https://github.com/abraham/twitteroauth)
- База сообщений (пришлось собирать ручками)
Чтобы работать с twitter api нужно сначала зарегистрировать своё приложение. Для этого
- Переходим https://dev.twitter.com/, нажимаем «Create an app»
- Заполняем форму и создаём приложение
- Чтобы наш скрипт мог писать твиты, его надо перевести в режим «Read and write». Для этого переходим в «Settings» и выбираем «Read and write». (Не забудьте сохранить изменения кнопочкой снизу)
- Возвращаемся в «Details» и получаем 4 ключа для работы с api (их необходимо будет вписать в наш скрипт): Consumer key, Consumer secret, Access token, Access token secret (чтобы получить последние два, надо нажать кнопочку «Create my access token»)
Все. Теперь мы можем работать с twitter api.
Пишем скрипт для постинга:
require_once "twitteroauth/twitteroauth.php"; // Файл из библиотеки для работы с api
define("CONSUMER_KEY", "<Указываем Consumer key>");
define("CONSUMER_SECRET", "<Указываем Consumer secret>");
define("OAUTH_TOKEN", "<Указываем Access token>");
define("OAUTH_SECRET", "<Указываем Access token secret>");
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);
$content = $connection->get('account/verify_credentials');
$file = file_get_contents(dirname(__FILE__).'/data.txt'); // Получаем список сообщений для отправки
$array = explode("n",$file);
$text = $array[mt_rand(0,sizeof($array) - 1)];
$connection->post('statuses/update', array('status' => $text)); // Отправляем пост
Вот и все. Заливаем на сервер, говорим крону, чтоб отправлял каждый час.
Автор: antonre