Важное примечание: С середины 2018 года процесс получения токенов API Twitter стал намного более бюрократическим. Мне потребовалось более одной рабочей недели, чтобы получить набор токенов API, и это для проекта с открытым исходным кодом для вас, парни и девушки, с более чем 1,2 млн. Установок на Packagist и 1,6 тыс. Звезд на Github, что теоретически должно быть более приоритетным ,
Если вам поручено работать с Twitter API для вашей работы, вы должны учитывать это потенциально очень долгое время ожидания. Также рассмотрите другие возможности социальных сетей, такие как Facebook или Instagram, и предоставьте эти опции, так как процесс получения их токенов происходит мгновенно.
Итак, вы хотите использовать API Twitter v1.1?
Примечание: файлы для них находятся на GitHub .
Версия 1.0 скоро будет устаревшей, и неавторизованные запросы не будут разрешены. Итак, вот пост, который поможет вам сделать это, вместе с классом PHP, чтобы сделать вашу жизнь проще.
1. Создайте учетную запись разработчика. Настройте учетную запись разработчика в Twitter.
Вам необходимо посетить официальный сайт разработчика Twitter и зарегистрировать учетную запись разработчика. Это бесплатный и необходимый шаг для отправки запросов на API v1.1.
2. Создайте приложение: создайте приложение на сайте разработчика Twitter
Какой? Вы думали, что можете сделать неаутентифицированные запросы? Не с Twitter v1.1 API. Вам необходимо посетить http://dev.twitter.com/apps и нажать кнопку «Создать приложение».
На этой странице заполните любые детали, которые вы хотите. Для меня это не имело значения, потому что я просто хотел сделать множество блочных запросов, чтобы избавиться от спам-подписчиков. Дело в том, что вы получите себе набор уникальных ключей для использования в вашем приложении.
Итак, цель создания приложения - дать себе (и Twitter) набор ключей. Эти:
- Ключ потребителя
- Секрет потребителя
- Токен доступа
- Секрет токена доступа
Там есть немного информации здесь , на какой эти жетоны.
3. Создайте токены доступа : они понадобятся вам для успешного выполнения запросов.
OAuth запрашивает несколько токенов. Так что вам нужно, чтобы они были созданы для вас.
Нажмите «Создать мой токен доступа» внизу. Затем, как только вы снова прокрутите страницу вниз, у вас появятся новые сгенерированные ключи. Вам нужно взять четыре ранее помеченных ключа с этой страницы для вызовов API, поэтому запишите их где-нибудь.
4. Измените уровень доступа : вы не хотите только для чтения, не так ли?
Если вы хотите достойно использовать этот API, вам нужно изменить настройки на Чтение и запись, если вы делаете что-то, кроме стандартного извлечения данных с помощью запросов GET .
Выберите вкладку «Настройки» в верхней части страницы.
Дайте приложению доступ для чтения / записи и нажмите «Обновить» внизу.
Вы можете прочитать больше о модели разрешений приложений, которую использует Twitter здесь.
5. Напишите код для доступа к API : я сделал большую часть для вас
Я скомбинировал приведенный выше код с некоторыми изменениями и изменениями в классе PHP, поэтому действительно просто выполнять запросы, которые вам нужны.
При этом используются OAuth и API Twitter v1.1 , а также созданный мной класс, который вы можете найти ниже.
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
Убедитесь, что вы положили ключи, которые вы получили от вашего приложения выше, в соответствующих местах.
Далее вам нужно выбрать URL, на который вы хотите сделать запрос. Твиттер имеет свою API документацию, чтобы помочь вам выбрать, какой URL, а также тип запроса (POST или GET).
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/blocks/create.json';
$requestMethod = 'POST';
В документации каждый URL указывает, что вы можете передать ему. Если мы используем URL-адрес «блоков», подобный приведенному выше, я могу передать следующие параметры POST:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
Теперь, когда вы настроили, что вы хотите делать с API, пришло время сделать фактический запрос.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
И для запроса POST , это все!
Для запроса GET это немного по-другому. Вот пример:
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/followers/ids.json';
$getfield = '?username=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Финальный пример кода : для простого запроса GET о списке моих подписчиков.
$url = 'https://api.twitter.com/1.1/followers/list.json';
$getfield = '?username=J7mbo&skip_status=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Я поместил эти файлы на GitHub с благодарностью @Loveovic10 и @rivers! Я надеюсь, что кто-то найдет это полезным; Я знаю, что сделал (я использовал его для массового блокирования в цикле).
Кроме того, для тех в Windows, у которых есть проблемы с сертификатами SSL, посмотрите этот пост . Эта библиотека использует cURL под капотом, поэтому вам нужно убедиться, что вы, вероятно, настроили свои сертификаты cURL. Google тоже твой друг.