PHP → Twitter отправка сообщений и работа с Twitter API

Стала задача написать приложение на стороне сервера (PHP), которое должно  периодически отправлять сообщение в twitter ленту (скажем при появлении новости на сайте), а также отсылать Direct Message некоему пользователю при наступлении определенных событий.

Грубо говоря необходимо реализовать взаимодействие PHP с Twitter API.

С недавних пор сервис twitter использует для авторизации вместо Basic Authentication более безопасный метод Open Authorization (OAuth).

Этот метод позволяет аутентифицировать пользователя не передавая непосредственно имя пользователя и пароль, а используя так называемые «токены» (tokens), что в свою очередь позволяет снять с разработчиков ответственность за хранение паролей пользователей.

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

В предложенных полях необходимо заполнить информацию о приложении, включая описание, название, обратные ссылки и т.д.

Важными являются два пункта:

Application Type (тип приложения). Нас интересует клиенский тип приложений (Client, пользователю будет выдан уникальный PIN-код, который необходимо будет ввести). Тип приложения Browser – соответствует веб-скриптам. Разница в том, что после авторизации приложения типа Browser идет автоматический редирект на URL скрипта.

Default Access Type (тип доступа по умолчанию). Рекомендую выставить в Read & Write, чтобы позволить не только читать пользовательские данные, но и изменять их (отправлять сообщения к примеру).

Остальные параметры не критичны и заполнить их можете на свое усмотрение. Далее вводим проверочный код и попадаем на страницу настроек приложения, где получаем первые два ключа CONSUMER_KEY и CONSUMER_SECRET.

Далее необходимо скачать TwitterOAuth PHP библиотеку (автор Abraham Williams, на момент написания статьи последняя версия 0.2.0-beta3).

Затем необходимо внести некоторые изменения в код библиотеки, описанные в материале Twitter API: PIN-based OAuth Using PHP (автор Konstantin Kovshenin). Изменения направлены на то чтоб переделать веб-ориентированную аутентификацию (когда пользователь должен кликнуть на кнопку авторизации) на аутентификацию с PIN-кодом, предназначенную для пользовательских приложений.

Далее следуют ряд действий по регистрации необходимые для получения request_token, request_token_secret а затем и access_token, access_token_secret ключей.

Что, как и в какой последовательности делать очень хорошо расписано в данной статье: OAuth for PHP Twitter Apps, Part 1 (автор Raj Deut).

Не вижу смысла повторяться, статья на английском но изложена в доступной форме. Все описанные выше действия выполняются лишь один раз для конкретного аккаунта и, при следовании приведенным по ссылке выше инструкциям, не отнимут у вас много времени.

В заключение, вот как будет выглядеть скрипт отправки личного сообщения в twitter, а также отправки текста «hello world» в статус:

#twitter.php

// Ключи CONSUMER_KEY и CONSUMER_SECRET полученные при регистрации приложения
// на странице http://dev.twitter.com/apps/new
$consumer_key = '***';
$consumer_secret = '***';

// Полученные токены/ключи, читаем из файла
$accessToken = file_get_contents("access_token");
$accessTokenSecret = file_get_contents("access_token_secret");

// Создаем twitter API объект
require_once("twitteroauth.php");
$oauth = new TwitterOAuth($consumer_key, $consumer_secret, $accessToken, $accessTokenSecret);

// Отсылаем API запрос для проверки полномочий
$credentials = $oauth->get("account/verify_credentials");
echo "Успешно подключены как пользователь @" . $credentials->screen_name;

// Печатаем "hello world" в статус
$oauth->post('statuses/update', array('status' => "hello world"));

// Отправляем direct message (приватное сообщение) другому пользователю
$send_str = 'Hi, friend! Test direct message';
$parameters = array('screen_name' => 'Sauron918', 'text' => $send_str);
$method = 'direct_messages/new';
$oauth->post($method, $parameters);

Related: what to do if you inhale drain cleaner fumes, emory smith scientist, best jobs for adults with slow processing speed, how to calculate modulus of elasticity of beam, palmetto ridge high school football, transfer news every 5 minutes, broyhill pergola big lots, mountain view farmers’ market vendor list, stellaris federation hegemony, jeffrey goldberg msnbc, does vistara provide alcohol on international flights, south africa surnames, ripp supercharger installation instructions, lead blanket for nuclear bomb, bourbonnais apartments for rent,