По поводу токена, код из моего проекта (C#):
webBrowser1.Navigate("https://oauth.vk.com/authorize?client_id=" + textBox2.Text + "&scope=4&display=page&response_type=token");
Далее Timer, почему не использовал DocumentComplete не помню, какой интервал не помню, не очень важно, а код по таймеру такой:
private void timer1_Tick(object sender, EventArgs e)
{
if (webBrowser1.Url == null) return;
string s = webBrowser1.Url.AbsoluteUri;
if (s.IndexOf("access_token=") == -1) return;
var token = s.Substring(s.IndexOf("access_token=") + "access_token=".Length, s.IndexOf("&expires_in") - (s.IndexOf("access_token=") + "access_token=".Length));
}
Вот и все, token и есть токен, осталось только придумать как передать его "дальше".
Точно помню, что нужен именно WebBrowser или любой другой headless-браузер, а не HTTP, поскольку там используется JavaScript, можно "расковырять" конечно, но не рекомендуется и начинать надо с WebBrowser.
Надеюсь, в коде разберетесь, ну, если захотите - разберетесь, я это делал три года назад и тогда даже не умел пользоваться снифферами, было тяжело, но справился. :)