Авторизация в Yandex посредством OAuth
Из своей документации они почему-то убрали человеческий метод, без всяких заморочек, но живёт он и поныне.
Для начала, нужно зарегистрировать приложение, чтобы получить ConsumerKey и ConsumerSecret. А далее, дело не хитрое, парсим мозгом код.
using System;
using System.Net;
using System.Text.RegularExpressions;
//...
const string ConsumerKey = "c2a234d49f120f1fbff15c8fb88e81bw";
const string ConsumerSecret = "a2cdf5feea3240c8ad9f2d90f627bc5d";
const string username = "[email protected]";
const string userpass= "ololo";
string access_token = string.Empty;
private void Login()
{
try
{
WebClient w = new WebClient();
w.Headers["Content-Type"] = "application/x-www-form-urlencoded";
w.UploadStringCompleted += (s, ev) =>
{
try
{
if (ev.Result != null && ev.Error==null)
{
if (ev.Result.Contains("access_token"))
{
Regex r = new Regex("[0-9a-f]{32}");
access_token = r.Match(ev.Result).Value;
}else
MessageBox.Show("WTF?");
}
else
MessageBox.Show("WTF2?");
}
catch (Exception ex)
{
MessageBox.Show("WTF3? " + ex.Message);
}
};
w.UploadStringAsync(new Uri("https://oauth.yandex.ru/token"), "POST", "grant_type=password&username=" + username + "&password=" + userpass + "&client_id=" + ConsumerKey + "&client_secret=" + ConsumerSecret);
}
catch (Exception ex)
{
MessageBox.Show("WTF4? " + ex.Message);
}
}
Только не забудьте корректно обработать все ошибки.