Автопостинг в твиттер на PHP
Рассмотрим создание автопостинга в твиттер с помощью скрипта PHP на простом примере - создадим в твиттере часы-кукушку (в пику Биг-Бену и Кремлевским Курантам).
Начнем с нуля и зарегистрируем в твиттере аккаунт для автоматического постинга, например, @kuku-clock, подтвердим по e-mail принадлежность аккаунта и настроим его.
Далее идем по ссылке Twitter Developers и авторизуемся новым twitter-аккаунтом https://dev.twitter.com/user/login?destination=home, переходим в раздел "My applications" (мои приложения) https://dev.twitter.com/apps и нажимаем кнопочку "Create a new application" (или идем по ссылке https://dev.twitter.com/apps/new).
Заполняем обязательные поля, ставим галочку согласия внизу "Yes, I agree" и нажимаем кнопку "Create a new application".
Далее переходим в раздел "Setting" и в части "Application Type" ставим в свойствах доступа (Access) точку на пункте "Read and Write".
Внизу нажимаем кнопку "Update this Twitter application's settings".
Возвращаемся в раздел "Details" и нажимаем внизу кнопку "Create my access token".
В результате генерируются токены доступа для вашего твиттер-приложения. Для автоматизации постинга в твиттер с помощью скриптов нам понадобятся следующие ключи и секреты:
Consumer secret
Access token
Access token secret
Копируем их в надежное место и никому не показываем. Проверяем также в этом разделе "Access level" - он должен быть "Read and write".
Нам потребуется библиотека PHP, поддерживающая OAuth for Twitter's REST API. Качаем ее отсюда: https://github.com/abraham/twitteroauth. Вот ссылка на ZIP-архив библиотеки: https://github.com/abraham/twitteroauth/archive/master.zip
Допустим, скрипты и библиотеки у нас будут в подкаталоге kuku. Создаем на хостинге каталог kuku, в нем создаем подкаталоги inc и lib. В подкаталог lib разархивируем содержимое zip-архива таким образом, чтобы каталог lib сразу содержал подкаталоги из архива twitteroauth, images и файлы.
В подкаталог inc помещаем файл kukukeys.php, содержащий ваши ключи и секреты в следующем виде (здесь приведены выдуманныне ключи для примера, вы же ставьте свои!):
<?php
// ключи вашего twitter-приложения
$options=array();
$options['CONSUMER_KEY'] = 'DBbd5EsBoj9dNBEdWdEdsA';
$options['CONSUMER_SECRET'] = 'sbfKSDbb2lLdbLwec4W9kmdkUrdD6G6aKDBcdXkjZa';
$options['OAUTH_TOKEN'] = '1033434124-6u2BDksdbqX31tBksdPZR06Y4DZ7fQPUx80m8ID';
$options['OAUTH_SECRET'] = 'Fksd1O5XdfNw7rKSDFnRcYvuGsdfklgSgx6DFDlkSDB';
?>
Создаем файл php, содержащий скрипт, который будет автоматически постить в твиттер сообщения. Пока для проверки сделаем простейший скрипт, назовем его kuku.php:
<?php DEFINE('ROOT', realpath(dirname(__FILE__)).'/'); require_once 'inc/kukukeys.php'; require_once 'lib/twitteroauth/twitteroauth.php'; $connection = new TwitterOAuth($options['CONSUMER_KEY'], $options['CONSUMER_SECRET'], $options['OAUTH_TOKEN'], $options['OAUTH_SECRET']); $connection->host = "https://api.twitter.com/1.1/";$status = "ку-ку";
echo("$status");flush();
$connection->post('statuses/update', array('status'=>$status));?>
Загружаем файл на хостинг в подкаталог kuku и проверяем его работу, открыв в строке браузера этот файл, набрав адрес в строке:
http://вашсайт.ru/kuku/kuku.php
Если вы все сделали правильно, то в вашем твиттер-аккаунте появится твит "ку-ку".
Осталось этот скрипт научить выполняться раз в час и выводить нужное количество "ку-ку".
Для этого можно использовать функции PHP str_repeat (повторение строки заданное число раз) и date("g"), выводящее количество часов в 12-часовом формате. Не забудем также задать часовой пояс.
В итоге у нас получается такой скрипт:
<?php DEFINE('ROOT', realpath(dirname(__FILE__)).'/'); require_once 'inc/kukukeys.php'; require_once 'lib/twitteroauth/twitteroauth.php'; set_time_limit(120); $connection = new TwitterOAuth($options['CONSUMER_KEY'], $options['CONSUMER_SECRET'], $options['OAUTH_TOKEN'], $options['OAUTH_SECRET']); $connection->host = "https://api.twitter.com/1.1/";//задаем часовой пояс
date_default_timezone_set('Europe/Moscow');
//задаем твит, состоящий из "Ку-ку " в количестве, равном числу часов
$status = str_repeat('Ку-ку ', date("g"));
//выводим для контроля статус на страничку перед отправкой его в твит
echo("$status");flush();
// отправляем статус в твиттер
$connection->post('statuses/update', array('status'=>$status));?>
Осталось запускать этот скрипт ровно в 00 минут каждого часа. Для этого можно использовать выполнение работа по расписанию. Ищите "задания Cron", или что-то похожее в панели управления вашим хостингом. Если у вас есть доступ к командной строке, то задать выполнение раз в час можно с помощью утилиты crontab:
0 * * * * /usr/bin/php /home/youdomain/public_html/kuku/kuku.php >/dev/null 2>&1
У нас получились вот такие модные часы с кукушкой в твиттере: @kuku_clock. Фолловьте!
Автоматический постинг в твиттер заранее подготовленных фраз
Используя принцип, реализованный в скрипте кукушки, можно организовать автоматический постинг в твиттер заранее подготовленных фраз, которые будут извлекаться последовательно из файла. Готовый пример скрипта, который автоматически твитит заранее заготовленные фразы из файла, вы можете скачать по ссылке ниже.
![]() | downloads: 3093 | type: zip | size: 9 kB |
Файлы скрипта автопостинга в твиттер нужно извлечь из zip-архива, внести свои ключи и секреты в файл keys.php, размещенный в подкаталоге inc и загрузить все файлы на ваш хостинг. Заранее заготовленный текст для твитов содержится в файле status.txt. Необходимо, чтобы каждая строка в этом файле содержала не более 140 символов. Для того, чтобы в твиттер автоматически отправлялись заранее заготовленные твиты, нужно периодически запускать файл twit.php. Делать это можно как из браузера (например, для тестирования), так и из планировщика задач (cron) на вашем хостинге. В последнем случае нужно указать полный путь к файлу скрипта, как и в примере с кукушкой. Для запуска скрипта из браузера просто откройте файл twit.php, как страничку вашего сайта. Например: http://your-site.ru/autotwit/twit.php В скрипте также размещен код фолловинга аккаунта @o_nixdotcom и приветственного первого твита. Можете их удалить, если посчитаете ненужными. "Спасибо" можно передать на Яндекс-кошелек 41001751578076 или кошельки Web-Money R045657591579 (копеечки) и Z675518766427 (центики) =) |