C# VkNet авторизация
После выполнения этого кода кнопка залипает и ничего не происходит.
VkApi vkApi = new VkApi();
private void button1_Click(object sender, EventArgs e)
{
vkApi.Authorize(new ApiAuthParams()
{
Login = "***",
Password = "***",
ApplicationId = 7644324,
Settings = Settings.All
});
if(vkApi.IsAuthorized == true)
{
MessageBox.Show("+");
}
}
Возможно ожидает двухфакторную авторизацию? если да то как сделать
Ответы (1 шт):
Автор решения: icYFTL
→ Ссылка
Двухфакторная авторизация:
static void Main(string[] args)
{
var api = new VkApi();
api.Authorize(new ApiAuthParams
{
ApplicationId = 123456,
Login = "Login",
Password = "Password",
Settings = Settings.All,
TwoFactorAuthorization = () =>
{
Console.WriteLine("Enter Code:");
return Console.ReadLine();
}
});
Console.WriteLine(api.Token);
}
https://vknet.github.io/vk/authorize/
Если не сработает, то попробуйте получить токен через: https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=PHONE_OR_MAIL&password=YOURPASSWORD&v=5.78
(поменяйте там поля на ваши логин и пароль).
С некоторых времен ВК запрещает выдавать полные права на токен.
Возможно при Settings = Settings.All происходит беда.
По этой ссылке можно получить токен с полными правами.
(Как это работает можете погуглить).
И далее ->
static void Main(string[] args)
{
var api = new VkApi();
api.Authorize(new ApiAuthParams
{
AccessToken = "access_token"
});
Console.WriteLine(api.Token);
var res = api.Groups.Get(new GroupsGetParams());
Console.WriteLine(res.TotalCount);
Console.ReadLine();
}