Статьи

Как добавить OAuth-аутентификацию в ваше приложение Twitter

Спасибо Твиттер. Вы не только удалили открытый доступ к общедоступным временным рамкам 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. Создание токена доступа

Нажмите кнопку « Создать мой маркер доступа» в нижней части вкладки «Сведения» на странице приложения. Теперь вы увидите различные строки против:

  1. OAuth: ключ потребителя
  2. OAuth: потребительский секрет
  3. Токен: токен доступа
  4. Токен: секрет доступа к токену

Держите страницу открытой — они понадобятся вам в ближайшее время.

Шаг 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 и прыгнуть через более пламенные обручи. Удачи.