Как показать архив твитов в WordPress, используя PHP и MySQL с поддержкой Crontab?
Твитер плохо отображает все твиты. На данный момент у меня более 600 твитов (большинство из них отправлено PHP-скриптом на VPS ). Если вы хотите локально сохранить копию всех ваших исторических твитов в собственной базе данных, вы, конечно, можете запросить архив в своей учетной записи Twitter [Настройки — Учетная запись — Запросить архив].
запрос-твиттер-архив
Как насчет того, чтобы сохранить все твиты и отобразить их в своем блоге (странице WordPress)? Идея отличная, потому что твиты можно рассматривать как статьи для целей SEO. Итак, вам нужно создать таблицу в базе данных WordPress, например, давайте назовем ее tweets
.
твит-история-таблица
У нас есть четыре столбца: идентификатор твита, текст, дата/время, количество ретвитов. Конечно, вы можете получить больше информации из twitter API statuses/user_timeline, но нас интересуют только эти четыре.
Локальное хранение
Всегда существует ограничение скорости использования API Twitter, поэтому вы не можете использовать их слишком часто. Однако идея здесь состоит в том, чтобы иметь PHP-скрипт, который запускается в crontab (каждые несколько часов), извлекает твиты и сохраняет их локально в базе данных.
Мы можем использовать php-библиотеку TwitterOAuth для взаимодействия с API Twitter:
Сохраните выше как twitter.php, чтобы мы могли включать их каждый раз, если мы хотим получить доступ к API Twitter.
mysql_query ("SET NAMES utf8") гарантирует, что твиты будут правильно вставлены в базу данных. mb_detect_encoding проверит, что твиты, возвращаемые API, на самом деле закодированы в UTF-8. PHP-скрипт выше проверит наличие дубликатов (на основе Twitter ID), поэтому в первый раз будет вставлен новый твит, а во второй раз он будет просто обновлен.
Существует максимальное количество твитов, которые вы можете получить за один вызов API, например, 300. Если у вас есть больше твитов, вы всегда можете несколько раз вызвать скрипт, чтобы загрузить все твиты. Однако нам нужно указать параметр max_id, который будет возвращать твиты старше этого идентификатора (более мелкие идентификаторы). Так что мы можем:
Идея состоит в том, чтобы проверить самый старый твит (с минимальным идентификатором) и вернуть только более старые твиты, поэтому, если вы запустите скрипты несколько раз, вы импортируете все твиты.
Теперь у нас есть готовые данные, и мы можем запускать этот скрипт на сервере VPS каждые несколько часов (частота на ваше усмотрение) с помощью команды crontab -e.
Отображение твитов на страницах WordPress
Теперь на этой странице helloacm.com/tweets-history/ показаны все древа из базы данных. Вам понадобится плагин для выполнения PHP/HTML внутри страницы WordPress. Вы можете легко найти такие плагины для WordPress.
Создайте страницу WordPress и поместите следующее:
[ include ]tweets.php[ / include ]
Затем нам нужно поместить PHP-скрипт в этот tweets.php, указанный выше.
Мы используем get_query_var(‘page’) для получения строки запроса, чтобы знать, на какой странице мы просматриваем.