Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Twitter
Code

Использование Twitter API для твита повторяющегося контента

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: Analyzing Your Followers

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Final product image
What You'll Be Creating

С возвращением к нашему обзору API Twitter. Если вы используете Twitter, вы можете встретить знакомого, делящегося твитами с бота @infinite_scream (см. Выше). Я знаю, что это в основном бот, потому что он делает твиты с десятиминутными интервалами. Но он изменяет длину строки своих виртуальных криков, чтобы не быть заблокированным печально известными недокументированными ограничениями API Twitter. Если вы слишком часто делаете твиты или повторяете один и тот же контент, то вы вскоре обнаружите, что ваши боты безнадежно заблокированы.

Недавно мой друг онлайн попросил меня помочь им написать код для бота, который мог бы повторять контент, но при этом использовал некоторое интеллектуальное изменение контента. В сегодняшнем учебнике я напишу о том, как это сделать с помощью API Twitter.

В сегодняшнем учебном пособии я расскажу, как создать бота, который делает:

  • Случайный интервал для твитов
  • Случайный выбор текста статуса
  • Случайный выбор хэштегов
  • Случайное включение URL-адресов
  • Избегайте блокировки в Twitter

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

Если у вас есть вопросы или идеи, оставляйте их в комментариях ниже. Если вы хотите увидеть некоторые из моих других уроков Envato Tuts +, посетите мою страницу инструктора, особенно мою стартовую серию. Давайте начнем.

Начинаем

Для бота в первом эпизоде, я стараюсь генерировать забавные твиты на регулярной основе, стараясь при этом не разгневать великого Бога Твиттера ограничивающего доступ.

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

Бот работает в Yii, популярном фреймворке на основе PHP. Я постараюсь сохранить руководство ниже довольно простым для разработчиков на чистим PHP. Тем не менее, я призываю вас использовать фреймворки. Вы можете узнать больше в моей серии Yii.

Создание бота

Регистрация приложения Twitter

В принципе, первое, что я сделал, это зарегистрировал свое приложение, чтобы получить мои ключи Twitter:

Repeating Twitter API - Setting up your Twitter App

Если вы не знакомы с созданием приложения и авторизацией доступа к API с помощью Twitter, ознакомьтесь с некоторыми из наших предыдущих уроков:

Авторский контент для набора твитов

Я хотел создать систему, где мой друг (или любой подтвержденный автор) мог бы писать вариации твитов и размещать их в базе данных для постоянного использования. Во-первых, я создал миграцию базы данных, чтобы создать таблицу для них.

Все мои таблицы для этого проекта имеют префикс norm_. Вот таблица твитов или norm_tweet:

Затем я использовал систему генерации кода Yii's Gii, чтобы создать модель и CRUD-файлы. Вот модель:

Repeating Twitter API - Yiis Gii Scaffolding Model Generator

А вот генерация CRUD:

Repeating Twitter API - Yiis Gii Scaffolding CRUD Generator

Таким образом, весь этот код автоматически предоставляет представление сетки ниже и возможности редактирования.

Repeating Twitter API - The Authoring Tweets UX

На данный момент я не использую Media ID, который предназначен для изображений, загружаемых для использования в твитах. Скорее всего, я расскажу об этом в следующем эпизоде.

Довольно просто, не так ли?

Добавление хэштегов

Затем я повторяю этот процесс и для других моделей. Вот миграция norm_hash для хэштегов:

Идея состоит в случайном включении выбранного тэга (или двух) в твиты, чтобы показать, что бот является человеком, изменяющим его твиты.

Вот Hashtag UX:

Repeating Twitter API - The Authoring Hashtags UX

Я не буду повторять шаги Yii Gii, но я повторяю их также для norm_hash и norm_url.

Добавление различных URL-адресов

Вот миграция базы данных для добавления URL-адресов:

Мастер-бот может добавлять URL-адреса в разное время. Вероятно, лучше для этого бота не использовать старые URL-адреса или повторять их. last_used и created_at временные метки Unix позволяют алгоритму твитинга, описанному ниже, решить, когда использовать URL-адреса.

Вот UX страница для URL:

Repeating Twitter API - The Adding URLs UX

Теперь, давайте посмотрим на забавный алгоритм, чтобы объединить все эти таблицы в интересные твиты, которые не будут раздражать Бога Твиттера.

Рандомизация содержимого бот-твитов

Приятно иметь бота, который постит разнообразный контент, но разнообразие также помогает предотвратить его блокировку с помощью Twitter.

Здесь вы можете увидеть лимиты Twitter, но некоторые правила для повторяющегося контента, похоже, не документированы:

Repeating Twitter API - Rate Limits Chart

Я узнал это от своего друга, так как им нужен алгоритм для построения твитов из базы данных твитов, хэштегов и URL-адресов.

Вот алгоритм построения, на котором мы остановились; Его легко настроить. Я опишу его по частям.

По моему мнению, нижеприведенный алгоритм имеет малое применение хэштегов и URL-адресов, и если вы хотите более устойчивое разнообразие контента, измените его по своему вкусу.

Во-первых, мы используем yii\db\Expression; Для правильного выбора случайного одиночного текста из таблицы:

Затем мы решаем, использовать хэштег (в настоящее время 1 из 5 или 20% времени) и сколько раз использовать (в настоящее время зафиксировано только одно):

Затем мы решаем, доступен ли URL для использования. URL-адреса должны быть ни старше недели, и их можно использовать только один раз каждые 72 часа (3 дня). Поэтому любой новый URL-адрес может быть доступен только один, два или три раза до истечения срока действия.

Наконец, мы строим твит на основе выбранных данных (доступные URL добавляются только один раз в четыре или 25%):

Выбор времени для постинга

Yii позволяет вам вызывать консольные контроллеры из cron. Поэтому я добавляю вызов своего /console/DaemonController.php в crontab.

$ sudo crontab -l

Вот как планируются мои задачи:

Каждый час запрашивается daemon/hourly в /console/DaemonController.php. Наше приложение бота решает только, делать твит или нет, раз в четыре часа.

Во-первых, вы видите, что у меня есть таблица NormLog, которую я не описывал выше, но которая отслеживает все результаты, а так же когда были сделаны твиты. Поэтому мой друг не хотел делать твиты больше одного раза в день.

Мы не хотели, чтобы последователей нашего бота раздражали постоянные твиты.

Затем мы выбираем число, в основном шесть раз в день (каждые четыре часа), и делаем твит, если число равно 6 (или один шанс из 12).

Передача твита в API Twitter

Вот метод NormTweet::deliver(), который вызывается демоном для публикации твита:

Ключи приложения Twitter для учетной записи хранятся в файле /bot/frontend/config/params-local.php, настроенном из файла bot.ini, который я использую:

Боты не простые, но они веселые!

Изучение результатов

Вот результаты нашего бота:

Repeating Twitter API - Tom McFarlin Head Editorial Goddess

Просто шучу! Это одна из богинь-редакторов, Том Макфарлин. AI-скрипты пока не способны заменить его «идеи», но Envato Tuts + нанял меня для работы над этим.

Вот настоящий бот, призванный напомнить моему другу и его последователям, что новая политика Америки не совсем нормальная. Я думаю, что вы наверняка согласитесь с этим.

Repeating Twitter API - Bot Tweet Stream from Tutorial

Надеюсь, вам понравился этот эпизод.

Что дальше?

Затем я создам платформу, более ориентированную на маркетинг, которая поможет вам использовать API Twitter для продвижения вашего стартапа, сервисов и бизнеса и при этом не быть помеченным как бот и заблокированным.

Если у вас есть какие-либо вопросы или предложения по этому учебнику, оставляйте их в комментариях. Если вы хотите увидеть мои будущие уроки Envato Tuts + и другие серии, пожалуйста, посетите мою страницу инструктора или ищите меня в твиттере @reifman.

Ссылки по теме

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.