Pull to refresh

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
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.