Спасибо Твиттер. Вы не только удалили открытый доступ к общедоступным временным рамкам Twitter , но и ожидаете, что разработчики будут бороться с загадочной документацией по аутентификации !
Многие из нас просто хотят отображать свои собственные твиты на нашем собственном сайте, но очевидно, что Твиттер предпочитает, чтобы мы использовали их виджеты. Несмотря на запутанные инструкции Twitter , реализация OAuth в вашем любовно созданном приложении API 1.0 достаточно проста, если вы используете библиотеки, предоставленные талантливой группой (не Twitter) разработчиков.
В приведенном ниже примере мы собираемся применить аутентификацию Twitter OAuth к приложению PHP, которое ранее анализировало данные временной шкалы из URL-адреса REST, например:
https://api.twitter.com/1/statuses/user_timeline.json?screen_name=craigbuckler
Существуют также библиотеки Twitter для C, Clojure, .NET, Go, Java, Node.js, Lua, Objective-C, Perl, Python и Ruby — инструкции будут аналогичными.
Шаг 1. Создайте приложение для Twitter
Перейдите на dev.twitter.com/apps/ и войдите в систему, используя свой идентификатор Twitter и пароль. Это может быть любой аккаунт; Ваше приложение сможет читать временную шкалу любого другого пользователя без его ведома или разрешения (я понимаю, что это не имеет особого смысла, учитывая новые политики Twitter, но я не разработал правила!)
Нажмите кнопку « Создать новое приложение» и введите название и описание вашего приложения. Веб-сайт должен быть страницей, на которой вы можете загрузить свой код, но, поскольку вы все еще пишете его, введите URL своей домашней страницы и измените его позже. Оставьте URL обратного вызова пустым.
Заполните CAPTCHA и нажмите Create .
Шаг 2. Создание токена доступа
Нажмите кнопку « Создать мой маркер доступа» в нижней части вкладки «Сведения» на странице приложения. Теперь вы увидите различные строки против:
- OAuth: ключ потребителя
- OAuth: потребительский секрет
- Токен: токен доступа
- Токен: секрет доступа к токену
Держите страницу открытой — они понадобятся вам в ближайшее время.
Шаг 3. Загрузите библиотеку OAuth.
Загрузите библиотеку OAuth PHP Twitter Авраама Уильямса с веб- сайта github.com/abraham/twitteroauth .
Проект содержит несколько файлов, но в действительности вам нужны только OAuth.php и twitteroauth.php в папке twitteroauth . Скопируйте оба в подходящую папку в вашем приложении.
Шаг 4: Измените свой код извлечения временной шкалы
Ваш PHP должен теперь использовать такой код, чтобы получить временную шкалу пользователя:
require('twitteroauth.php'); // path to twitteroauth library $consumerkey = '11111111'; $consumersecret = '22222222'; $accesstoken = '33333333'; $accesstokensecret = '44444444'; $twitter = new TwitterOAuth($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); $tweets = $twitter->get('https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=craigbuckler&count=10'); print_r($tweets);
Переменные $consumerkey
, $consumersecret
, $accesstoken
и $accesstokensecret
должны быть установлены на коды Twitter, сгенерированные на шаге 2 выше .
Метод $twitter->get
должен затем передать соответствующий URL REST. В примере показано мое имя, поэтому вы должны ввести свой собственный идентификатор Twitter для параметра screen_name
(если вы не хотите показывать мои твиты, стонущие о Twitter?)
Запустите код, и, если повезет, поток твитов должен появиться… точно так же, как это было до того, как полиция Twitter настаивала на ограничении доступа к публичным сообщениям. Теперь вам нужно отформатировать их в соответствии с требованиями к отображению . Shesshh.
Обратите внимание, что метод get () json_decode
команду PHP json_decode
и возвращает объект. Если вы предпочитаете ассоциативный массив, измените строку 144 файла twitteroauth.php на:
return json_decode($response, true);
Надеемся, что это обеспечит несколько месяцев, пока Twitter не заставит нас перейти на API 2.0 и прыгнуть через более пламенные обручи. Удачи.