Важливе зауваження: станом на середину 2018 року процес отримання щебенів API twitter став набагато більш бюрократичним. Мені знадобилося більше одного робочого тижня, щоб надати токени API, і це проект з відкритим кодом для вас, хлопці та дівчата з понад 1,2 мільйонами установок на Packagist та 1,6-зірковими зірками в Github, що теоретично повинно бути вищим пріоритетом .
Якщо вам покладається завдання працювати з API twitter для своєї роботи, ви повинні врахувати цей потенційно надзвичайно довгий час очікування. Також врахуйте інші проспекти соціальних медіа, як-от Facebook чи Instagram, і надайте ці варіанти, оскільки процес отримання їх жетонів миттєвий.
Отже, ви хочете використовувати API v1.1 Twitter?
Примітка: файли для них знаходяться на GitHub .
Незабаром буде застаріла версія Версії 1.0 , і заборонені запити заборонено. Отже, ось пост, який допоможе вам зробити саме це разом із класом PHP, щоб полегшити ваше життя.
1. Створіть обліковий запис розробника: налаштуйте обліковий запис розробника у Twitter
Вам потрібно зайти на офіційний сайт розробника Twitter і зареєструватися для облікового запису розробника. Це безкоштовний та необхідний крок для запитів на API v1.1.
2. Створіть додаток: створіть програму на сайті розробника Twitter
Що? Ви думали, що можете зробити несанкціоновані запити? Не з API v1.1 Twitter. Вам потрібно відвідати http://dev.twitter.com/apps і натиснути кнопку "Створити додаток".
На цій сторінці заповніть усі деталі, які ви хочете. Для мене це не мало значення, тому що я просто хотів зробити багато запитів на блокування, щоб позбутися від послідовників спаму. Справа в тому, що ти збираєшся отримати себе набір унікальних ключів, які потрібно використовувати для вашої програми.
Отже, сенс створення програми - дати собі (і Twitter) набір ключів. Це:
- Споживчий ключ
- Споживча таємниця
- Маркер доступу
- Секрет маркера доступу
Там є трохи інформації тут , на який ці жетони.
3. Створіть маркери доступу : вони знадобляться для успішних запитів
OAuth просить кілька жетонів. Тому вам потрібно створити їх для вас.
Натисніть "Створити мій маркер доступу" внизу. Після того, як ви знову прокрутите донизу, у вас з’являться кілька створених ключів. Вам потрібно схопити чотири раніше позначені ключі з цієї сторінки для дзвінків API, тому занотуйте їх десь.
4. Змініть рівень доступу : ви не хочете лише для читання, чи не так?
Якщо ви хочете гідно використовувати цей API, вам потрібно змінити налаштування на Read & Write, якщо ви робите щось, крім стандартного пошуку даних за допомогою GET- запитів.
Виберіть вкладку "Налаштування" вгорі сторінки.
Надайте програмі доступ для читання / запису та натисніть "Оновити" внизу.
Ви можете прочитати більше про модель дозволу на додатки, яку Twitter використовує тут.
5. Напишіть код, щоб отримати доступ до API : більшість з них я зробив за вас
Я поєднав наведений вище код, з деякими модифікаціями та змінами, в клас PHP, тому зробити запити, які вам потрібні, дуже просто.
Для цього використовується OAuth та API v1.1 Twitter , і клас, який я створив, ви можете знайти нижче.
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-адресу, до якого потрібно надіслати запит. Twitter має свою документацію 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 з кредитом @ lackovic10 та @rivers! Я сподіваюся, що хтось вважає це корисним; Я знаю, що зробив (я використовував це для об'ємного блокування в циклі).
Також для тих, хто в Windows, які мають проблеми з сертифікатами SSL, дивіться цей пост . Ця бібліотека використовує cURL під кришкою, тому вам потрібно переконатися, що у вас, ймовірно, встановлені сертифікати CURL. Google також є вашим другом.