[ WP7 ] Yandex OAuth

Авторизация в 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);
            }
        }

Только не забудьте корректно обработать все ошибки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *