Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/89: Рейтинг темы: голосов - 89, средняя оценка - 4.63
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53

VK API: token через сутки уже не работает

04.05.2012, 21:29. Показов 16431. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу десктоп для vk, но сталкнулся с проблемой.
Получаю я token и записываю его в XML, чтобы постоянно не просить разрешения. Спустя день начинаю работать дальше, делаю запрос к API, а он мне ерор токен. Как можно эту проблему решить????
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.05.2012, 21:29
Ответы с готовыми решениями:

Уже сутки мучаюсь с кодировкой ответа json
Люди добрые, помогите... не могу понять в чем дело, уже сутки бьюсь проблемой... Суть в том, что запрос json возвращает чепуху, я уже...

Facebook api. Active access token
Пишу приложение facebook мессенджер. Нашёл на одном сайте пример входа в аккаунт и загрузки списка друзей. ...

Ошибка при разборе запроса. [ Token line number = 1,Token line offset = 26,Token in error = Наименование ]
Доброго времени суток, никак не пойму в чем проблема. using System; using System.Collections.Generic; using System.ComponentModel; ...

18
 Аватар для KillJoy
58 / 58 / 29
Регистрация: 21.09.2009
Сообщений: 313
Записей в блоге: 1
04.05.2012, 22:24
Token выдается на сутки. Его нужно постоянно обновлять
1
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
04.05.2012, 23:13  [ТС]
Ну есть же десктоп приложения в которых один раз подтвердил и больше не просят!
0
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
05.05.2012, 01:12
а как ты "выловил" access_token ? Поделись пожалуйста
я через webrowser передаю всё, вхожу, а не знаю как достать ключ из ответа, точнее, как ответ изловить
0
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
05.05.2012, 08:49  [ТС]
Цитата Сообщение от Tweekaz Посмотреть сообщение
а как ты "выловил" access_token ? Поделись пожалуйста
я через webrowser передаю всё, вхожу, а не знаю как достать ключ из ответа, точнее, как ответ изловить
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (e.Url.ToString().IndexOf("access_token" ) != -1)
            { 
                Regex myReg = new Regex(@"(?<name>[\w\d\x5f]+)=(?<value>[^\x26\s]+)" ,RegexOptions.IgnoreCase | RegexOptions.Singleline);
                foreach (Match m in myReg.Matches(e.Url.ToString()))
                {
                    if (m.Groups["name" ].Value == "access_token")
                    {
                        access_token = m.Groups[ "value"].Value;
                    }
                    else if (m.Groups["name"].Value == "expires_in")
                    {
                        expires_in = m.Groups[ "value"].Value;
                    }
                    else if (m.Groups["name"].Value == "user_id")
                    {
                        userId = Convert.ToInt32(m.Groups["value" ].Value);
                    }
                    else if (m.Groups["name"].Value == "secret")
                    }
                        secret = m.Groups["value"].Value;
                    }
                }
Добавлено через 7 минут
Ну все же кто подскажет как продлить жизнь ключу?
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
05.05.2012, 09:10
Цитата Сообщение от sirnet Посмотреть сообщение
Ну все же кто подскажет как продлить жизнь ключу?
Срок его жизни ограничен намерено ,из-за соображений безопасности .Как дверь на пружине, если не закрыл ,закроется сама
0
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
05.05.2012, 09:24  [ТС]
Ну есть десктоп приложение meridian! Как оно тогда работает, там же один раз зашел и больше не надо подтверждать!
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
05.05.2012, 11:57
Вот статья на хабре, среди прочего там есть такие строки:
access_token=93f22a20ddf1174f939108d43e9 36cd6bb193469344639c2d1c268f3f65fa86 &expires_in=86400&user_id=11347652
, где access_token — необходимый нам параметр, для отправки последующий запросов к API Вконтакте;
expires_in — время жизни token, после истечения необходимо обновить
( UPD: если в правах указать «offline» или 999999, то токен будет бесконечным);
0
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
05.05.2012, 12:02  [ТС]
Спасибо сегодня проверю!
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
05.05.2012, 12:03
А вот информация с официального сайта:
Получение access_token
После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу REDIRECT_URI, указанному при открытии диалога авторизации. При этом ключ доступа к API access_token и другие параметры будут передана в URL-фрагменте ссылки:

http://REDIRECT_URI#access_token= 533bacf01e11f55b536a565b57531ad114461ae8 736d6506a3&expires_in=86400&user_id=8492
Вместе с ключом access_token также будет указано время его жизни expires_in, заданное в секундах. Если срок использования ключа истек, то необходимо повторно провести все описанные выше шаги, но в этом случае пользователю уже не придется дважды разрешать доступ. Запрашивать access_token также необходимо при смене пользователем логина или пароля или удалением приложения в настройках доступа.
А offline упоминается на этой странице.
1
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
05.05.2012, 12:55
А что ты в самом методе пишешь ?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 private void webBrowser1_DocumentCompleted(object sender, WebBrowserNavigatedEventArgs e)
        {
            string[] parts = e.Url.AbsoluteUri.Split('#');
            WebBrowser browser = (WebBrowser)sender;
            if (parts[0] == "http://api.vkontakte.ru/blank.html")
            {
                //если ошибка, закрываем форму
                if (parts[1].Substring(0, 12) == "access_token")
                {
                    //разбираем ответ
                    parts = parts[1].Split('&');
 
                    //записываем данные
                    access_token = parts[0].Split('=')[1];
                    user_id = parts[2].Split('=')[1];
                }
            }
        }
Я не знаю как выловить этот ответ, мой кусок кода - просто игнорируется ! Может ты знаешь что сделать ?
0
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
05.05.2012, 14:19  [ТС]
это в запуске формы.
C#
1
webBrowser1.Navigate(String.Format("http://api.vkontakte.ru/oauth/authorize?client_id={0}&scope={1}&redirect_uri=http://oauth.vk.com/blank.html&display=popup&response_type=token", appId, scope));
а то что я писал раньше в webBrowser1
1
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
05.05.2012, 23:15
Короч, вот весь мой код для авторизации..(
Вот что я не так делаю ? Помоги плиз(
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private string access_token = null; //ключ сессии
        private string user_id = null;//ID авторизованного пользователя
        private int appId = 2924929;
        private enum vksl
        {
 
 
            notify = 1,
 
            friends = 2,
 
            photos = 4,
 
            audio = 8,
 
            video = 16,
 
            offers = 32,
 
            questions = 64,
 
            pages = 128,
 
            link = 256,
 
            notes = 2048,
 
            messages = 4096,
 
            wall = 8192,
 
            docs = 131072
 
        }
 
        private int scope = (int)(vksl.audio | vksl.docs | vksl.friends | vksl.link | vksl.messages | vksl.notes | vksl.notify | vksl.offers | vksl.pages | vksl.photos | vksl.questions | vksl.video | vksl.wall);
        public Form1()
        {
            InitializeComponent();
            webBrowser1.Navigate(String.Format("http://api.vkontakte.ru/oauth/authorize?client_id={0}&scope={1}&redirect_uri=http://oauth.vk.com/blank.html&display=popup&response_type=token", appId, scope));
 
        }
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            string[] parts = e.Url.AbsoluteUri.Split('#');
            WebBrowser browser = (WebBrowser)sender;
            if (parts[0] == "http://api.vkontakte.ru/blank.html")
            {
                //если ошибка, закрываем форму
                if (parts[1].Substring(0, 12) == "access_token")
                {
                    //разбираем ответ
                    parts = parts[1].Split('&');
 
                    //записываем данные
                    access_token = parts[0].Split('=')[1];
                    user_id = parts[2].Split('=')[1];
                    MessageBox.Show(access_token);
                }
            }
        }
    }
}
0
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
06.05.2012, 16:37  [ТС]
Цитата Сообщение от Tweekaz Посмотреть сообщение
C#
1
2
3
4
5
public Form1()
     {
        InitializeComponent();
        webBrowser1.Navigate(String.Format("http://api.vkontakte.ru/oauth/authorize?client_id={0}&scope={1}&redirect_uri=http://oauth.vk.com/blank.html&display=popup&response_type=token", appId, scope));
}
C#
1
2
3
4
private void Form1_Load(object sender, EventArgs e)
        {
webBrowser1.Navigate(String.Format("http://api.vkontakte.ru/oauth/authorize?client_id={0}&scope={1}&redirect_uri=http://oauth.vk.com/blank.html&display=popup&response_type=token", appId, scope));
}
1
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
06.05.2012, 21:20
Цитата Сообщение от sirnet Посмотреть сообщение
C#
1
2
3
4
private void Form1_Load(object sender, EventArgs e)
        {
webBrowser1.Navigate(String.Format("http://api.vkontakte.ru/oauth/authorize?client_id={0}&scope={1}&redirect_uri=http://oauth.vk.com/blank.html&display=popup&response_type=token", appId, scope));
}
Заменить?(
Или же что ?(
Я не понимаю ((
0
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
06.05.2012, 21:57  [ТС]
Это нужен два раза по форме щелкнуть и туда написать вызов веббраузера!
1
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
06.05.2012, 22:13
Цитата Сообщение от sirnet Посмотреть сообщение
Это нужен два раза по форме щелкнуть и туда написать вызов веббраузера!
Спасибо тебе !)))
А какие функции будем выполнять твоё приложение ?
0
 Аватар для sirnet
13 / 13 / 5
Регистрация: 12.02.2010
Сообщений: 53
06.05.2012, 22:18  [ТС]
Запрос информации обо мне и делаю аудио плеер!
0
24 / 23 / 3
Регистрация: 21.04.2012
Сообщений: 253
06.05.2012, 22:19
Цитата Сообщение от sirnet Посмотреть сообщение
Запрос информации обо мне и делаю аудио плеер!
Удачи тебе в этом деле ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2012, 22:19
Помогаю со студенческими работами здесь

Не могу подключиться к Google API и получить token
Есть прога написанная неким человеком, она работала, теперь нет, то ли гугл апи поменял, то ли баг в проге. Но не работает теперь....

Запустил программу HDD Регинератор. Стоит уже сутки 50% только что делать ждать или нет?
Помогите

Подскажите, как правильно вывести список стран без token. vk api
Используя vk api вывести список стран. https://vk.com/dev/database.getCountries

Не работает отправка письма с вложением через gmail api
Здравствуйте! Я использую следующий код для формирования тела письма по протоколу smtp (простой текст и текст с вложениями). Он...

Rest API авторизация token Код состояния ответа HTTP 422 (Unprocessable Entity)
Здравствуйте, помогите разобраться с авторизацией. Я раньше такого не делал, поэтому понятия не имею как что должно быть. Перепробовал кучу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru