Авторизация в 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); } }
Только не забудьте корректно обработать все ошибки.