Как стать автором
Обновить

Twitter AOuth и TweetSharp

Как вы знаете, с недавнего времени Twitter стал использовать протокол авторизации OAuth 1.0 (зачем можно почитать тут [1]). В данной статье я хочу коротко рассказать о том, как разработчику twitter клиента написать свой метод для работы по этому протоколу. Я буду использовать язык C# и работать с Twitter API не напрямую, а используя замечательно спроектированную библиотеку TweetSharp[2].
Процесс расписан по шагам, каждый шаг сопровождается пояснениями.

Шаг 1. Получение ConsumerKey и ConsumerSecret

Прежде всего зайдите на сайт dev.twitter.com. Нажмите register. Зарегистрируйтесь как разработчик на сайте. Далее зарегеструйте свое приложение. После этого появится окно, в котором будет разнообразная информация. Нас интересует только Consumer Key и Consumer Secret (на картинке вместо них черные прямоугольники):
image
Эти две лексемы нам еще очень пригодятся. Сохраните их где-нибудь в вашем приложении – например, в ресурсах под соответствующими именами.

Шаги 2 и 3. Получение Pin

При первом запуске приложение должно отправить запрос с полученными лексемами к сервису:

FluentTwitter.SetClientInfo(
new TwitterClientInfo
{
ConsumerKey = Properties.Resources.ConsumerKey,
ConsumerSecret = Properties.Resources.ConsumerSecret
});

var twit = FluentTwitter.CreateRequest().Authentication.GetRequestToken();
var response = twit.Request();
var RequestToken = response.AsToken();
twit = twit.Authentication.AuthorizeDesktop(RequestToken.Token);

Последняя строка этого кода откроет ваш браузер по умолчанию со следуйщим сообщением:
image

Нажмите Allow. Появится окно с числом – это и есть нужный нам PIN. Проблема в том, что этот PIN нужно иметь в программе, а не в браузере. Для этого создайте диалог, запрашивающий у пользотеля этот PIN. В коде ниже этот диалог вызывается в методе getPinFromUser:

string verifier = getPinFromUser();

В терминах протокола OAuth 1.0 PIN называется oauth_verifier.

Шаг 4. Получение AccessToken

Теперь отправим запрос к сервису, содержащий consumerKey, consumerSecret & Pin. Сервис возвращает AccessToken, который будет использован приложением для дальнейшей работы с сервисом:

twit.Authentication.GetAccessToken(RequestToken.Token, verifier);

var response2 = twit.Request();

Сохраните AccessToken в конфигурационном файле вашего приложения, желательно в зашифрованном виде.
Шаг 5. Обновление AccessToken

Через какое-то время twitter больше не будет признавать ваш AccessToken и вам придется запросить новый. Это делается так же как и раньше с помощью метода GetAccessToken.

Ссылки по теме:
[1] Кратко о OAuth protocol 1.0
[2] TweetSharp
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.