Мотивационный автопостинг с помощью twitter api

в 15:11, , рубрики: twitter, twitter api, автопостинг, метки: , ,

image
Прочитав статью Makaveli Простой сервис уведомлений через Twitter, решил тоже сделать что-нибудь для twitter.com.

Не буду описывать как я пришёл к выводу о написани автопостера (бота) для твиттера, который занимался бы мотивационным «постингом». Суть сервиса в том, что любой пользователь, добавившийся в читатели, каждый час получает твит, мотивационного характера. (Кому интересно в твиттер — это @MotivatorForYou).

Это лишь пример того, как можно использовать twitter api для автоматизации написания твитов.

Итак, что понадобилось:


Чтобы работать с twitter api нужно сначала зарегистрировать своё приложение. Для этого

  1. Переходим https://dev.twitter.com/, нажимаем «Create an app»
  2. Заполняем форму и создаём приложение
  3. Чтобы наш скрипт мог писать твиты, его надо перевести в режим «Read and write». Для этого переходим в «Settings» и выбираем «Read and write». (Не забудьте сохранить изменения кнопочкой снизу)
  4. Возвращаемся в «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


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js