VkNet.TokenMagic
EN, RU
Languages:Readme English
Extension for VkNet to authenticate as Android application, giving you access to full Audio API and probably more. This is a heavily refactored C# port of PHP vk-audio-token - all credits for reverse engineering and black magic to original author.
How it works:
- Makes requests to Google servers as an Android app -> gets
receipt
string - Authenticates in VK using regular flow with login and password -> gets
token
string - Authenticates in VK arain using
receipt
andtoken
-> getsrefreshed token
refreshed token
gives you god mode and allows full API access.
This Installation
Nuget
Install-Package VkNet.TokenMagic
.NET CLI
dotnet add package VkNet.TokenMagic
Examples
using VkNet.TokenMagic;
...
var services = new ServiceCollection();
//Add all the stuff to DI container:
services.AddTokenMagic();
var vkNet = new VkApi(services);
// use login+password
vkNet.Authorize(new ApiAuthParams
{
Login = "LOGIN",
Password = "PASSWORD",
});
Notes
- Cache token if possible!
- Authentication flow might be broken in non-trivial cases (2FA, captcha, etc)
- Had to reinvent RestClient with underlying HttpClient
- No dependencies on ProtocolBuffers
- No dependencies on external services except Gooogle
Acknowledgments
- vodka2 for initial implementation
- VkNet contributors
- VkNet.AudioBypass contributors
Readme Русский
Расширение VkNet для аутентификации под видом Android-приложения для доступа к полному API аудиозаписей и, возможно, даже больше. Это сильно отрефакторенный порт PHP vk-audio-token - вся уважуха за реверс и черную магию автору оригинала.
Как оно работает:
- Делает запросы к серверам Google, прикидываясь Android-приложением -> получает строку
receipt
- Аутентифицируется в VK по стандартной схеме с логином и паролем -> получает строку
токен
- Аутентифицируется в VK еще раз, используя
receipt
итокен
-> получает строкуобновленный токен
обновленный токен
дает расширенные права и полный доступ к API.
Этот Установка
Nuget
Install-Package VkNet.TokenMagic
.NET CLI
dotnet add package VkNet.TokenMagic
Примеры
using VkNet.TokenMagic;
...
var services = new ServiceCollection();
// Добавляем весь хлам в DI контейнер:
services.AddTokenMagic();
var vkNet = new VkApi(services);
// используем логин+пароль
vkNet.Authorize(new ApiAuthParams
{
Login = "LOGIN",
Password = "PASSWORD",
});
Заметки
- Кэшируйте токен, если возможно!
- Аутентификация может быть сломана в нетривиальных случаях (2-х факторная, капча, и тд)
- Пришлось переизобретать RestClient с используемым HttpClient
- Нет зависимости от ProtocolBuffers
- Нет зависимости от внешних сервисов, помимо Google
Благодарности
- vodka2 за исходную реализацию
- контрибьюторы VkNet
- контрибьюторы VkNet.AudioBypass