Хождение по мукам или автопостинг в твиттере

+20
3.24K
Описываются мои муки, когда я пытался наладить автопостинг с моего сайта в Твиттер. Публикую тут, чтобы народ не наступал на грабли. Публикация не закончена, наберитесь терпения. Победа близка!

Как настроить плагин автопостинга (плагин Делтаса) в Твиттер.

1. Зайти в твиттер. У кого нет аккаунта — зарегистрируйтесь.
2. На главной странице в верней строке, нажать шестеренку и выбрать "Настройки".
3. В левом меню выбрать "Приложения". В центре появится надпись "Здесь представлены приложения, у которых есть доступ к вашей учётной записи в Твиттере." и ссылка Подробнее.
(Нажав на ссылку "Подробнее", попадаем на страницу "Connecting or revoking third-party applications" — "Подключение и отзыв сторонних приложений".) На этой странице либо пусто, либо либо указаны другие приложения.

Начинаем шаманить. Здесь очень страшные колдунства! Самое главное — получить четыре ключа для плагина Делтаса..

4. Переходим по ссылке dev.twitter.com/apps/new
Заполняем форму на английском:
— поле Name — напишите имя, что в голову придет. Если такое имя уже есть в системе, вам предложат ввести другое.
— поле Description — ну, я написал "This application for automatic posting to twitter"… простите за мой французский!
— поле Website — я указал адрес главной страницы своего сайта.
— поле Callback URL оставьте пустым, если не хотите, чтобы на ваш сайт долбились боты
Внимательно пропустите "Developer Rules of the Road" и внизу поставьте галку "Yes, I agree".
Нажмите кнопку "Create your Twitter application".

5 Происходит переход на страницу, где есть сообщение "Your application has been created. Please take a moment to review and adjust your application's settings." — "Ваша заявка была создана. Пожалуйста, найдите время, чтобы пересмотреть и скорректировать настройки приложения."

Прежде всего смотрим на строчку Access level. Скорее всего там вид доступа "read only". Сверху ищем закладку "Setting" и жмем на нее.
Ниже ищем и устанавливаем галку "Allow this application to be used to Sign in with Twitter" — "Разрешить этому приложению входить в Твиттер". В самом низу страницы есть кнопка "Update Settings", на которую нажимаем.

Теперь закладка "Permissions". Переходим на нее и ставим радиокнопку "Read and Write"
Вот тут то и начинаются колдунства! При попытке нажать на кнопку "Update Settings" вас пошлет куда подальше с сообщением
"Error. You must add your mobile phone to your Twitter profile before granting your application write capabilities. Please read support.twitter.com/articles/110250-adding-your-mobile-number-to-your-account-via-web for more information"
Причина — ваш мобильник не привязан к Твиттеру. У кого привязан — пропустите и читайте, как получить токен.

Как привязать мобильник к Твиттеру.
Инструкция на этой странице.

Самое страшное колдунство — это если ваши мобильный оператор не поддерживает связь с твиттером. Это вам придется идти в ближайший салон связи и напрягать девчонок, которые немедленно начинают пищать, что "они такого никогда не делали". Выкручивайте им руки до тех пор, пока на писк не выползет из подсобки заспанный админ, с которым уже более менее можно иметь дело. Ваша задача — добиться, чтобы отправленная с вашего мобильника sms-ка ВПЕРЕД была принята Твиттером. Тогда твиттер поймет, что вы и есть тот, за которого себя выдаете по телефону.

Самое жуткое, что Твиттер далеко не все телефоны понимает. Например, мой мобильник он отказался принимать наотрез, хотя мой оператор МТС среди его операторов значится.

Говорят, есть сервисы, вроде sms-reg.com, который позволяет получить временный телефон для регистрации аккаунтов, в том числе и на твиттере, если не охота, например, светить свой телефон. Я попробовал там зарегиться и даже бросил туда небольшие деньги. Они обещают сделать звонок в твиттер за символическую сумму в 8 рублей. Так вот, НЕ ВЕРЬТЕ. Это лохотрон. Они говорят, что свободных телефонов в настоящий момент нет и предлагают купить готовый аккаунт в твиттере. Причем, аккаунтов нужно купить не менее 10 штук, и каждый следующий дороже предыдущего на порядок. Стало понятно, что это жульничество. Особенно тепло становится на душе, когда почитаешь у них FAQ. Пользователи обвиняют сервис в мошенничестве, те в ответ тыкают в нос свои правила… Ну просто песня!

Я зарегистрировал телефон в твиттере, воспользовавшись телефоном знакомых. В настройках в твиттере поснимал все галки, чтобы твиттер их телефон не терроризировал. Не знаю, как вы выкрутитесь, а я вот так.

Получение ключей и токенов.

Зайдите на вкладку "API keys". Как правило, на ней уже сгенерированы два ключа: API key и API secret. Эти два ключа можно сгенерировать заново, нажав кнопку "Regenerate API keys".

Ищите кнопку "Create my access token" и нажмите ее… При нажатии вы получите два токена.

Все четыре вам пригодятся.

Возможные проблемы.
1. Появилось только два ключа. Причина — вы не выставили режим "Read and Write" на вкладке "Permissions". Перейдите на эту вкладку и попытайтесь снова.
2. К вашему аккаунту в Твиттере не подключен телефон. Об этой проблеме я рассказал выше.

Проверка правильности настроек соединения

Если вы получили четыре ключа, это вовсе не означает, что все будет хорошо. Следует проверить, отправляет ли приложение посты в твиттер. Для этого сверху справа нажмите кнопку "Test OAuth".

Вам предложит ввести свое имя в Твиттере и пароль. Если все правильно, вы попадете на следующую страницу приложения, где в одно место собраны четыре пароля (два ключа и два токена) которые вы должны будете вставить в плагин Делтаса. Здесь же еще одна настройка — каким образом отправлять твитты — методом GET или же методом POST.

А вот фиг вам! Иногда бывает, что в Твиттер вы заходите (он вас узнает по кукисам), но пароль доступа в Твиттер слетел. Тогда вы будете долго кружиться на этом месте (как кружился я) и не понимать, что происходит. Я вынужден был пройти процедуру восстановления пароля в Твиттере, прежде чем меня пустило дальше.

Причем, что интересно, Твиттер вас узнает, но попытка поменять пароль из настроек аккаунта обречена на провал. Для того, чтобы ввести новый пароль, нужно сперва ввести старый, а он то у вас как раз и слетел! Попытка отправить ссылку для сброса пароля на почту тоже безрезультатна — письмо просто не приходит. Меня опять выручили друзья — я им написал через скайп, они мне выслали код сброса пароля, который получили в sms.
Только так я прорвался на следующую страницу

Плагин Делтаса.

Останавливаться на этом не буду, как поставить плагин на сайт, подробно расписано у Делтаса. Единственно, что я сделал, добавил в него две строчки:
1. После строчки
  1. $text = $post.' - '.$seolink;
я вставил системное сообщение
  1. cmsCore::addSessionMessage('Текст сообщения: '.$text, 'info');
2. Нам же интересно, какой код твиттер вернет в случае отказа, поэтому после строчки
  1. $connection->post('statuses/update', array('status' => $text));
вставил
  1. cmsCore::addSessionMessage('Код ответа: '.$connection->http_code, 'info');
Эти мои строчки пригодятся нам для отладки. Потом, когда все наладится, их можно удалить или закомментировать.

Полученные два ключа и два токена следует вставить в плагине Делтаса в админке плагина.

Отложенная публикация

На проблему отложенной публикации обратил внимание alllffa. Если вы опубликовали статью, где срок публикации не сегодня, а, например, через неделю, то через неделю статья появится на сайте, но плагин Делтаса не сработает. Причина этого казуса и как ее устранить подробно описана в моей статье.

Еще раз фиг вам!

Вроде все настроено и срабатывает, ключи и токены выверены, каждый находится на своем месте… но Твиттер при публикации статьи возвращает код 403. Такое может быть, если вы превысили лимит сообщений. Эти лимиты таковы:
— Личные сообщения: 250 в день
— Твиты: 1000 в день.
— Изменение адреса email — одно в 4 часа.
Возможно, просто следует подождать.

Продолжение Торжественной Порки (практически по Ярославу Гашеку)

Итак, все предыдущие искания не увенчались успехом. Как водится, если что-то не получается, то RTFM.
Читаем мануал по библиотеке TwitterOAuth. Оказывается, авторизация в твиттере происходит в несколько этапов:
1. Создается объект класса TwitterOAuth с двумя ключами (“Consumer Key” и “Consumer Secret”). На этом этапе происходит генерация двух временных ключей и ссылки, по которой твиттер выдаст PIN.
2. По временным ключам и PIN'у получаем постоянные ключи.

Дайте мне немного времени, чтобы я написал php-файл (на основе плагина Делтаса) в котором реализован этот алгоритм и я расскажу, что получилось.

Что получилось из PIN'а

Фигня получилась. Тупик. Эксперименты с PIN'ом ни к чему не привели. Зато, экспериментируя, я научился получать из своего твиттера ленту своих твиттов, свой id, ретвиты, файл со своим аватаром и некоторые другие православные кренделя. Залез в документацию API Твиттера и курю мануалы (на буржуйском), а заодно экспериментирую. Что будет — расскажу, если что прояснится.

Кое-что прояснилось

Эксперименты показали, что простой текст (без ссылок) твиттер все-таки постит. Причина оказалась в адресе сайта. Немного яснее стало, когда я получил доступ к кодам, которые возвращаются в момент постинга. Твиттер пишет: "status contains malware". Обращение к документации показало, что твиттер умудрился занести мой сайт в черный список.

Кстати, коды твиттера можно посмотреть на странице dev.twitter.com/docs/error-codes-responses. Они подразделяются на две группы:
1. HTTP Status Codes. Например, код 200 говорит, что все ОК и ваше сообщение опубликовано.
2. Error Codes. Возвращаются вместе с текстовым сообщением, в случае возникновения ошибки. На упомянутой странице дана развернутая расшифровка этих кодов.

Если добьюсь успеха, напишу фрагмент кода на php, который будет выводить эти коды ошибок для быстрого анализа.

Естественно, я тут же полез читать раздел документации про malware. Они рекомендуют протестировать сайт в Гугле. Я это сделал, мне Гугль отвечает, что сайт в фишинге, распространении вредоносного ПО, и прочих некошерных вещей не замечен. Хотя в документации твиттера и сказано, что они получают информацию из Гугля о вредоносности, тем не менее они могут заблокировать сайт и по собственной инициативе. Вот что пишут: "Even if Google's diagnostic report of the URL is clean, we may decide to continue blocking the URL on Twitter as potentially harmful." Во гады.

Буду писать тикет в саппорт твиттера на буржуйском языке. Они сейчас животы порвут от моего французского.

Написал. Между прочим, ответили (и суток не прошло). Вот что ответили "Please kindly wait while we are investigating this issue." Я счастлив просто.

Прошла неделя. Ни ответа ни привета. Я за это время занялся другими делами. Решил еще раз отправить статью и о, чудо! Твиттер опубликовал ссылку на мою статью. Одно из двух. Либо люди из саппорта Твиттера сняли флаг malware с моего сайта и, естественно, тут же обо мне забыли ( и вправду, нафиг отвечать, не царское это дело), либо просто прошло время и были сняты какие-то временные блокировки.

Теперь причешу этот скрипт так, чтобы он сигнализировал о возможных неприятностях при опубликовании статьи и выложу.

О моем скрипте автопостинга

Пишу эти строки спустя значительное время (сегодня уже 24 января 2015 года). Скрипт я написал, и он на моих сайтах работает. К сожалению, у меня катастрофически не хватает времени привести его к универсальному виду, с удобными настройками в админке.

На основании своего скрипта я сделал еще один плагин — условно назовем его "Перфоратор". Он "долбит" твиттер объявлением с заданной периодичностью, с запуском от задачи cron. Очень удобно, если в твиттере раз в три часа, например, появляется твое объявление. Но времени, чтобы причесать этот комплект и поделиться — увы, никак найти не могу.

Если кому-то до зарезу надо — пишите в личку, что нибудь придумаем (в смысле подпилить скрипт под нужды вашего сайта)
+2
Бергал Бергал 10 лет назад #
А твиттерфид? Не? Вроде там все просто и понятно. И все рсс ленты закидывает в акк твиттера.
0
Странник Странник 10 лет назад #
ссылку? попробую там еще!
+1
Бергал Бергал 10 лет назад #
Twitterfeed.com
Регаемся подтверждаем по почте и добавляем рсс ленту. Там же автопостинг и в ФБ и линкедин. В настройках можно до 5 ссылок в час выставить, чтобы публиковало из каждой рсс. Только помним что твиттер не любит более 20 постов в сутки smile
0
myertelive myertelive 10 лет назад #
Твиттер: ограничения 100 действий в час, 200 действий в сутки. Свыше этого можно бан заработать
0
Май Май 10 лет назад #
Спасибо. Позже воспользуюсь.
0
VopisUVD VopisUVD 10 лет назад #
В общем то надо брать симку билайна и переписываться с твитером до посинения через смс... Радовой сисадмин ничем не поможет... Если вы живете в Москве то еще мегафон-москва прокатит...
Но реализовано песец не солидно для такой крупной компании!
0
Helg Helg 10 лет назад #
Что вам мешает купить твиттер ферму выложенную здесь в блогах и забыть проблемы с автопостингом?
0
Бергал Бергал 10 лет назад #
кстати, да? купил и забыл smile ну или забил.
+1
VopisUVD VopisUVD 10 лет назад #
Олег:
Что вам мешает купить твиттер ферму выложенную здесь в блогах и забыть проблемы с автопостингом?
С активацией там та же проблема, без активации главного аккаунта в котором создается приложение работать не будет!
+2
Рейк Накейкл Рейк Накейкл 10 лет назад #
Я пользуюсь бесплатным сервисом time2post, из рсс лент посты постятся в твиттер, фейсбук и вконтактик.
Можно подключить до 10 лент для одного канала

Еще от автора

Адаптация компонента "Закладки" от 19 января 2011 к коробочной версии 1.10.7
На форуме появилась тема с пожеланиями адаптировать довольно старый компонент "Instant Bookmarks" Fuze к современным реалиям.
Утилита "Садовод" для версии InstantCMS 1.10.7.008
В этой краткой заметке описывается утилита "Садовод" для ремонта деревьев версии InstantCMS 1.10.7.008.
Изменение компонента "Баннеры" для будущей  версии 1.10.7.008
Данная статья рассказывает всем ждущим новую версию 008, что нового ожидается в будущем релизе версии 1.10.7.008.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.