Автоматические сообщения в Twitter через PHP (Twitter API, OAuth)

Обновлено: 2 июля 2014

dev.twitter.com сделал очередные обновления в дизайне и функционале. Довёл статью до актуального состояния.

Обновлено: 20 апреля 2013

dev.twitter.com изменил расположение кнопок и меню, инструкция обновлена до актуального состояния.

Статья о том, как написать скрипт на php для автоматического управления своей twitter страницей. Скрипт даст возможность: писать сообщения, удалять сообщения, узнавать статус, кол-во фолловеров, последнюю запись и многое другое!

Все действия в работе с Twitter API (для аутентификации) выполняются при помощи механизма OAuth.

Twitter Bird

Для использования Twitter API нужно добавить своё приложение на dev.twitter.com, далее я написал подробную, пошаговую инструкцию о регистрации twitter-приложения, а затем как это приложение использовать с помощью php-скрипта.

1. Вход в dev.twitter.com

Зайдите на страницу dev.twitter.com. Войдите в систему под логином и паролем, используемыми для входа в Ваш twitter аккаунт. Вход в систему осуществляется по нажатию кнопки "Sign in".

dev.twitter.com sign in

2. Создание приложения на dev.twitter.com

Войдите в меню вашего логина и выберите My applications. Вы войдёте на страницу ваших приложений, созданных на dev twitter.

dev.twitter.com create app


Создайте новое приложение, нажав на кнопку "Create New App". Так, вы попадёте на страницу создания приложения, где вам предложат заполнить необходимые детали для работы приложения.


create app

Введите название приложения (Name), описание приложения (Description), ссылку на веб-сайт вашего приложения (Website), ссылка на страницу с контактными данным (Callback URL) - это опция для указания страницы обратной связи, напр. "http://makefuture.net/feedback/". После заполнения всех необходмых данных, прочитайте правила и согласитесь (Yes, I agree), если согласны :), введите капчу и нажмите на "Create your Twitter application" (создать моё твиттер-приложение).

3. Настройка twitter приложения

После того, как вы создали приложение, вас направит на страницу с данными созданного приложения. Выберите вкладку "Settings" (настройки) для настройки иконки и других данных о приложении. Затем выберите вкладку "Permissions" (разрешения) - для настройки полномочий вашего приложения.

dev.twitter.com app settings


Выберите "Read, Write and Access direct messages" или другой вам подходящий вариант. Внимание! Для того, чтобы поставить эти настройки Вам необходимо указать свой номер телефона в твиттер аккаунте!


dev.twitter.com settings apps

Read - приложение только читает, Read and Write - читает и записывает, Read, Write and Access direct messages - читает, записывает и может напрямую добавлять сообщения в твит.

После проведения всех необходимых настроек на этой странице, нажмите на кнопку "Update settings", находящуюся снизу, следом за настройками.

4. Сбор необходимых ключей

После того, как вы изменили настройки, зайдите на вкладку "API Keys" (ключи приложения).

Скопируйте к себе в блокнот ключи "API key" и "API secret", а затем нажмите на кнопку "Create my access token" (создать ключи безопасности), находящуюся ниже на странице.

dev.twitter.com apps keys

После нажатия на кнопку "Create my access token", обновите страницу и под заголовком "Your access token" скопируйте ключи: "Access token" и "Access token secret".

5. Дело за малым! Осталось настроить сам PHP-скрипт отправки в twitter.

Сначала, загрузите нужную для работы библиотеку Abraham Twitter OAuth. Нам нужны только два файла: twitteroauth/twitteroauth.php и twitteroauth/OAuth.php. Всего в рабочей папке на вашем сайте, должно быть 3 файла, twitteroauth.php, OAuth.php и (наш скрипт) script.php.

Вот код скрипта:

require_once('twitteroauth.php'); //Загружаем библиотеку
//Вводим свои данные
define("CONSUMER_KEY", "Вставьте ваш API Key");
define("CONSUMER_SECRET", "Вставьте ваш API 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');
//Постим сообщение
$connection->post('statuses/update', array('status' => "Привет Твиттерe от http://makefuture.net !"));

Скачайте пример и нужные файлы

Дополнительные возможности

Как удалить сообщение на twitter?
Замените строку:
$connection->post('statuses/update', array('status' => "Сообщение!"));
на
$content = $connection->delete('statuses/destroy/Айди сообщения в твиттере');


Различная информация о вашем твите, которую вы получите с помощью переменной $content

//Ваш id
$content['id']
$content['id_str']
//Имя
$content['name']
//Показываемое название твита
$content['screen_name']
//Изображение профиля
$content['profile_image_url']
//Язык
$content['lang'] //Читаете $content['friends_count'] //Вас читают $content[''] //Кол-во твитов $content['statuses_count'] //Статус $content['description'] //Кол-во фолловеров $content['followers_count'] //Создан $content['created_at'] //Временная зона $content['time_zone'] //Дизайн профиля: $content['profile_background_image_url_https'] $content['profile_background_image_url_http'] $content['profile_use_background_image'] $content['profile_text_color'] $content['profile_sidebar_border_color'] $content['profile_sidebar_fill_color'] $content['profile_background_color'] $content['profile_background_tile'] $content['default_profile_image'] //Получить все ключи/значения вы можете добавив такую строку: foreach($content as $key => $value){echo "{$key} - {$value}";}

Ссылки

API Документация
OAuth Документация
MakeFuture на твиттере

P.S.

Если будут проблемы с кириллицей, то сохраните файл с сообщением в UTF8 BOM.
Ну вот и всё, когда запустите данный скрипт, то в ваш твиттер упадёт приветственное сообщение! Основа есть, а далее полёт вашей фантазии и логики, к примеру, можно настроить скрипт на отправку сообщения в твиттер, после публикации нового материала на Вашем сайте. Если Вам это не по силам, вы можете обратиться ко мне и в качестве платной услуги я быстро настрою вашу систему так, как Вам захочется.

Комментарии и отзывы к материалу

09.10.2012

Lock пишет:
Спасибо! Самая полная статья что есть в гугле!

20.03.2013

Игорь Л. пишет:
не работает ваша инструкция!!!!!!!!!!!!!!!!!!!!

в картинках объясните где галочки ставить и что выбирать

20.03.2013

Григорий (MakeFuture) пишет:
Вы правы. dev.twitter.com обновился и теперь расположение некоторых кнопок не соответствует инструкции. Зайдите через 1-2 часа, я обновлю статью до актуального состояния и добавлю изображения как вы просили.

29.03.2013

Alex пишет:
Большое спасибо! Отличная инструкция!

21.04.2013

Алексей пишет:
Что то после 19 апреля перестало работать. Изменилось что нибудь?

21.04.2013

Григорий (MakeFuture) пишет:
Да, поменялось, сегодня-завтра напишу об изменениях

22.04.2013

serge пишет:
Напишите пожалуйста как скрипт починить!

24.04.2013

frozen пишет:
Если обновил уже, то скрипт не работает. И так пробовал, и так - ничего...

24.04.2013

Григорий (MakeFuture) пишет:
Не замечал было ли это ранее, но похоже, что ввели некоторые изменения для OAuth ключей. Зайдите в настройки приложения на dev.twitter.com и убедитесь, что в Settings права стоят "Read, Write and Access direct messages". Затем, зайдите на вкладку Details и заново создайте OAuth ключи. После, естественно поменяйте в скрипте Token ключи - на новые.
Ну и не помешало бы перезалить файлы OAuth.php (обновился месяц назад) и twitteroauth.php (обновился 13 дней назад).

28.04.2013

nasdak пишет:
Спасибо. Все очень понятно расписано. А как постить ссылки? Сокращенные ссылки? т.е. опубликованная ссылка выглядит оригинальной, но при наведении мышкой на ссылку в подсказке появляется сокращенная ссылка. Как постить сокращенные ссылки?

07.05.2013

Григорий (MakeFuture) пишет:
Можно заранее готовить ссылки (не в ручную, а используя апи или curl - посылать запрос на создание ссылки на сократители ресурсов и добавлять полученную ссылку в твит-сообщение)

09.05.2013

Александр пишет:
Спасибо за статью. Помогло решить проблему трансляции текущего трека в эфире в твиттер ленту http://gtiradio.ru

06.06.2013

yung пишет:
Добрый день, спасибо за статью! очень помогло!
Хотелось бы взять совета,
удаление и постинг твитов проходит на ура, а вот возможно ли изменение определенного твита, что то вроде:
$connection->post('statuses/update/ID', array('status' => "ЕЩЕ РАЗ Здравствуй Твиттер!"));

Заранее спасибо!

12.06.2013

Григорий (MakeFuture) пишет:
Насколько знаю, можно менять статус, а вот сообщение...

01.08.2013

Володя пишет:
А как можно постить на стенку другому пользователю ? есть такая возможность у твиттера?

24.08.2013

Денис пишет:
А как сделать так, что бы другие пользователи давали доступ приложения и от их имен уже публиковать твитты?

30.09.2013

www.mediakirov.ru пишет:
не работает,
The Twitter REST API v1 is no longer active. Please migrate to API v1.1

30.09.2013

www.mediakirov.ru пишет:
просто обновите
https://raw.github.com/abraham/twitteroauth/master/twitteroauth/twitteroauth.php

22.01.2014

Kubig пишет:
А как картинку постить?

07.02.2014

Сергей пишет:
Сейчас по моему надо еще и тел добавить а еще и скрины изменить, у них оформление поменялось по моему

01.07.2014

Григорий (MakeFuture) пишет:
Да, обновил статью.
У них поменялся дизайн и теперь требуют телефон для более широких полномочий приложения.

12.08.2014

Максим пишет:
А есть вообще возможность программно добавлять в избранное? нигде не найду..

03.10.2014

Вячеслав пишет:
Снова на твиттере обновления, как посмотреть уже созданное приложение. Когда-то создавал.. потом отключил и сейчас нужно снова включить. То есть заново ввести на сайте ключи доступа токены и так далее. Если не сложно ответьте мне на почту slavon_pisanka@mail.ru

24.12.2014

Алекс пишет:
Можете рассказать как постить изображения вместе с текстом?
Спасибо.

08.02.2015

Алексей пишет:
Благодарю за статью, получилось реализовать для сайта http://marciy.com/

01.07.2015

Андрей пишет:
А как быть с кирилическими сайтами,типа моего www.наш-квартал.рф, твитер вообще не понимает что я ему впариваю требует нормальное имя сайта.

08.07.2015

Андрей пишет:
Твитер обновился всё стало по другому ,что где не понятно,как настраивать,и попрошу больше не удалять моё сообщение.

29.09.2015

Дмитрий пишет:
Большое спасибо за статью! Реализовал на своём сайте (https://teos-zz.ru/)

Отправить комментарий

Как зовут?

Сообщение