FoxEdit
@FoxEdit
Начинающий программист

Как правильно реализовать авторизацию через Authorization Code Flow в vkNet?

Я написал программу работающую со стеной в сообществе вконтакте, однако столкнулся с проблемой доступа к стене которая решается если авторизоваться через "Authorization Code Flow"

wall - Доступ к обычным и расширенным методам работы со стеной.
Данное право доступа по умолчанию недоступно для сайтов (игнорируется при попытке авторизации для приложений с типом «Веб-сайт» или по схеме Authorization Code Flow).

Я написал код который должен авторизовывать меня таким образом, однако во время попытки выложить пост компилятор выдаёт ошибку
VkNet.Exception.AccessTokenInvalidException: "Метод 'photos.get' нельзя вызывать без авторизации"
несмотря на то, что ранее авторизация прошла успешно. Вот исходный код окна авторизации:
public static string token;
        public static string id;
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            try
            {
                string url = webBrowser1.Url.ToString();
                string l = url.Split('#')[1];
                if (l[0] == 'a')
                {
                    token = l.Split('&')[0].Split('=')[1];
                    id = l.Split('=')[3];
                    StreamWriter SW = new StreamWriter(new FileStream("User_ID.txt", FileMode.Create, FileAccess.Write));
                    SW.Write(id);
                    SW.Close();
                    StreamWriter SW2 = new StreamWriter(new FileStream("Token.txt", FileMode.Create, FileAccess.Write));
                    SW2.Write(token);
                    SW2.Close();
                    if (token != "")
                    {
                        this.Hide();
                        MessageBox.Show("Авторизация удалась");
                    }
                }
            }

            catch
            {

            }

Исходный код standalone-приложения:
public void VkAuth(string login, string pass)
        {
            string url = "https://oauth.vk.com/authorize?client_id=-----&redirect_uri=https://oauth.vk.com/blank.html&scope=wall,friends,offline&display=popup&response_type=token&v=5.37&revoke=1";
            Form1 form1 = new Form1();
            form1.Show();
            System.Windows.Forms.WebBrowser browser = (System.Windows.Forms.WebBrowser)form1.Controls["webBrowser1"];
            browser.Navigate(url);
        }

Возможно проблема и не в моём коде, однако почему возникает ошибка авторизации я понять не могу. В чём же проблема?
Почему бы не попробовать авторизоваться другим способом?
Я пробовал авторизацию через токен, логин и пароль и т.п. Не помогло.
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы