Из-за выхода из строя Twitter API 1.0 по состоянию на 11 июня 2013 г. приведенный ниже скрипт больше не работает.
// Create curl resource
$ch = curl_init();
// Set url
curl_setopt($ch, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/myscreenname.json?count=10");
// Return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
// Close curl resource to free up system resources
curl_close($ch);
if ($output)
{
$tweets = json_decode($output,true);
foreach ($tweets as $tweet)
{
print_r($tweet);
}
}
Как я могу получить user_timeline (последние статусы) с наименьшим возможным кодом?
Я нашел это: https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline, но я получаю следующую ошибку:
"{"errors":[{"message":"Could not authenticate you","code":32}]}"
Есть много классов, но после нескольких попыток ни один из них, похоже, не работает из-за этих обновлений в Твиттере, плюс некоторые из них - довольно продвинутые классы с большим количеством функциональных возможностей, которые мне действительно не нужны.
Какой самый простой / короткий способ получить последние статусы пользователей с помощью PHP?
Ответы:
Итак, вы хотите использовать API Twitter v1.1?
Примечание: файлы для них находятся на GitHub .
Версия 1.0 скоро будет устаревшей, и неавторизованные запросы не будут разрешены. Итак, вот пост, который поможет вам сделать это, вместе с классом PHP, чтобы сделать вашу жизнь проще.
Вам необходимо посетить официальный сайт разработчика Twitter и зарегистрировать учетную запись разработчика. Это бесплатный и необходимый шаг для отправки запросов на API v1.1.
Какой? Вы думали, что можете сделать неаутентифицированные запросы? Не с Twitter v1.1 API. Вам необходимо посетить http://dev.twitter.com/apps и нажать кнопку «Создать приложение».
На этой странице заполните любые детали, которые вы хотите. Для меня это не имело значения, потому что я просто хотел сделать множество блочных запросов, чтобы избавиться от спам-подписчиков. Дело в том, что вы получите себе набор уникальных ключей для использования в вашем приложении.
Итак, цель создания приложения - дать себе (и Twitter) набор ключей. Эти:
Там есть немного информации здесь , на какой эти жетоны.
OAuth запрашивает несколько токенов. Так что вам нужно, чтобы они были созданы для вас.
Нажмите «Создать мой токен доступа» внизу. Затем, как только вы снова прокрутите страницу вниз, у вас появятся новые сгенерированные ключи. Вам нужно взять четыре ранее помеченных ключа с этой страницы для вызовов API, поэтому запишите их где-нибудь.
Если вы хотите достойно использовать этот API, вам нужно изменить настройки на Чтение и запись, если вы делаете что-то, кроме стандартного извлечения данных с помощью запросов GET .
Выберите вкладку «Настройки» в верхней части страницы.
Дайте приложению доступ для чтения / записи и нажмите «Обновить» внизу.
Вы можете прочитать больше о модели разрешений приложений, которую использует Twitter здесь.
Я скомбинировал приведенный выше код с некоторыми изменениями и изменениями в классе PHP, поэтому действительно просто выполнять запросы, которые вам нужны.
При этом используются OAuth и API Twitter v1.1 , а также созданный мной класс, который вы можете найти ниже.
Убедитесь, что вы положили ключи, которые вы получили от вашего приложения выше, в соответствующих местах.
Далее вам нужно выбрать URL, на который вы хотите сделать запрос. Твиттер имеет свою API документацию, чтобы помочь вам выбрать, какой URL, а также тип запроса (POST или GET).
В документации каждый URL указывает, что вы можете передать ему. Если мы используем URL-адрес «блоков», подобный приведенному выше, я могу передать следующие параметры POST:
Теперь, когда вы настроили, что вы хотите делать с API, пришло время сделать фактический запрос.
И для запроса POST , это все!
Для запроса GET это немного по-другому. Вот пример:
Финальный пример кода : для простого запроса GET о списке моих подписчиков.
Я поместил эти файлы на GitHub с благодарностью @Loveovic10 и @rivers! Я надеюсь, что кто-то найдет это полезным; Я знаю, что сделал (я использовал его для массового блокирования в цикле).
источник
php.ini
файл, а также загрузить сертификаты CA в вашphp.ini
файл, используяcurl.cainfo = path\to\cacert.pem
. Вы можете получить сертификаты CA здесь .Перейдите на dev.twitter.com и создайте приложение . Это предоставит вам необходимые учетные данные. Вот реализация, которую я недавно написал с PHP и cURL .
Это можно запустить из командной строки:
источник
screen_name
иcount
с таким подходом? Я попытался добавить его в$url
переменную, но получил ошибку «Не удалось подтвердить подлинность».curl_init()
хотя. Я посмотрел на некоторые примеры, и они выглядят очень просто и понятно, и точно так же, как этот код здесь ... Нужно ли устанавливать что-то особенное?Код, вставленный Риверсом, великолепен. Большое спасибо! Я новичок здесь и не могу комментировать, я просто хотел бы ответить на вопрос от javiervd (Как бы вы задали имя экрана и рассчитывали при таком подходе?), Так как я потерял много времени, чтобы понять это вне.
Вам необходимо добавить параметры как в URL, так и в процесс создания подписи. Создание подписи - статья, которая помогла мне. Вот мой код:
источник
buildAuthorizationHeader
функцию? Я реализовал это отдельно.Как указано в других ответах, создайте приложение Twitter, чтобы получить токен, ключ и секрет. Используя приведенный ниже код, вы можете изменить параметры запроса в одном месте и избежать опечаток и подобных ошибок (изменить
$request
массив вreturnTweet()
функции).а потом просто позвони
returnTweet()
источник
functions.php
файл в WordPress, вставил<?php echo returnTweet(); ?>
файл HTML, и он выводит слово «Массив» и ничего больше.Спасибо, Крис!
Он работал для меня без использования параметров для запроса, всякий раз, когда я использовал более одного параметра, он показывал мне ошибку: 32 Не удалось аутентифицировать вас.
Проблема для меня была в кодировке амперсанда. Так в вашем коде, где это следующая строка
Я добавил следующую строку ниже:
И он работал с использованием двух или более параметров, таких как screen_name и count.
Весь код выглядит так:
Надеюсь, это поможет кому-то с той же проблемой, что у меня была.
источник
Этот вопрос мне очень помог, но не дал мне полного понимания того, что должно произойти. Этот пост в блоге проделал потрясающую работу, рассказав мне об этом.
Вот важные биты в одном месте:
Я сочувствую всем головным болям, так что вот код, чтобы обернуть все это:
источник
Если у вас установлена библиотека OAuth PHP, вам не нужно беспокоиться о формировании запроса самостоятельно.
Для получения дополнительной информации, проверьте Документы или их пример . Вы можете использовать,
pecl install oauth
чтобы получить библиотеку.источник
Прежде всего я хотел бы поблагодарить Джимбо и ( его пост / twitter-api-php простая библиотека).
Если вы собираетесь использовать API поиска / твитов GET с PHP-библиотекой «twitter-api-php» (TwitterAPIExchange.php):
Сначала нужно просто прокомментировать область кода «Выполнить запрос POST и повторить ответ».
Просто используйте код «Выполнить запрос GET и повторить ответ», введите ответ и измените эти две строки:
в
(Изменить
screen_name
наq
это все :)источник
Вам понадобится создать «приложение» в Твиттере (для этого вам понадобится учетная запись в Твиттере).
Затем вам нужно использовать OAuth для авторизованного запроса в Twitter .
Вы можете использовать ресурс GET statuses / user_timeline, чтобы получить список последних твитов.
источник
HttpRequest()
функцию PHP для шага 2? Существует библиотека Авраама TwitterOAuth PHP - github.com/abraham/twitteroauth - библиотека, которая должна делать это также, но пример того, как ее реализовать, на самом деле не представлен.Вот краткий для получения указанного количества твитов с вашей временной шкалы. Он в основном делает то же самое, что и другие примеры, только с меньшим количеством кода.
Просто заполните ключи и настройте
$count
по своему вкусу:Этот использует анонимные функции и
file_get_contents
вместо библиотеки cURL. Обратите внимание на использование одноразового номера MD5. Кажется, что все согласны сtime()
одноразовым номером, однако в большинстве примеров в Интернете, касающихся OAuth, используется какая-то зашифрованная строка (например, http://www.sitepoint.com/understanding-oauth-1/ ). Это имеет больше смысла для меня тоже.Также обратите внимание: вам нужен PHP 5.3+ для анонимных функций (если ваш сервер / компьютер находится в какой-то пещере времен холодной войны и вы не можете обновить ее)
источник
Из их генератора сигнатур вы можете генерировать
curl
команды вида:источник
источник
Благодаря этой теме, и особенно budidino, потому что именно его код привел меня домой. Просто хотел сообщить, как получить данные JSON из запроса. Внесите изменения в массив кода запроса "// create request" для выполнения различных запросов. В конечном итоге это выведет JSON на экран браузера
источник
Если это кому-нибудь пригодится ... В моем блоге я реализовал следующий код PHP, чтобы извлечь последние твиты, извлечь их наиболее важные данные и затем сохранить их в базе данных MySQL. Это работает, потому что я получил это в своем блоге.
Таблица «твиты», где хранятся их:
get_tweets.php:
Функция сохранения твитов:
источник