vk-music-fs
vk-music-fs copied to clipboard
Проблемы при двухфакторной аутентификаций redirect_uri
System: Manjaro x64 vk-music-fs-git: from AUR
При попытки соедениться с ВК выдaёт:
➜ ~ vk_music_fs --get_token <+01234567890> <my_passwd>
No user id or access token in response. Response:
{"error":"need_validation","validation_type":"2fa_app","validation_sid":"2fa_377999756_2685278_e2185ad866ca70e22b","phone_mask":"+0 *** *** ** 90",
"error_description":"open redirect_uri in browser [5].
Also you can use 2fa_supported param",
"redirect_uri":"https:\/\/m.vk.com\/login?act=authcheck&api_hash=<my_private_hash>"}
Я попробовал перейти по redirect_uri
вручную, в 9/10 случаев получал сообщение что сессия устарела.
В итоге, я всё-таки смог авторизоваться и получить access token
.
Не ясно как должен выглядеть в таких случаях user_agent в ~/.config/VkMusicFs/VkMusicFs.ini
-- в README не помешал бы более подробный пример.
После чего явно передал полученный токен через:
➜ ~ vk_music_fs --token <got_token> ~/VkMusicFs
После этого VkMusicFs успешно подмонтирповалась, но к сожалению всё равно не скачивает треки.
➜ My audios ls -la
total 0
drwxrwxrwx 1 root root 0 янв 14 18:00 0-100
-rwxrwxrwx 1 root root 1165 янв 14 18:00 'и в официальных приложениях ВКонтакте - Аудио доступно на vk.com.mp3'
Возможно дело в том, что не указан user_agent.
@m0rphed двухфакторная авторизация пока не поддерживается, но вообще можно ведь указать пароль для приложения в настройках ВК. Хотя, если уже получилось авторизоваться, то User-Agent есть в исходном коде.
Описание параметров в ini действительно, нужно добавить в README, они имеют вид
token=<token>
user_agent=<user_agent>
Тоже столкнулся с указанной проблемой после установки из AUR.
- Ввел
$ vk_music_fs --get_token
(кстати — рекомендую здесь пробел перед командой делать, во многих шеллах это не сохраняет команду в истории, дабы не светить там пароль) - Открыл браузер с любым расширением на смену юзерагента, вбил туда тот, что по комменту выше, на момент написания этого комментария —
KateMobileAndroid/40.4 lite-394 (Android 4.4.2; SDK 19; x86; unknown Android SDK built for x86; en)
- Перешел по ссылке из ответа апишки в редиректе — благодаря юзерагенту там было не «сессия устарела», а ввод кода из смс, ввел.
- В адресной строке получил access_token и user_id, токен использую далее.
- Сделал .ini файл (пробовал по-разному, с двойными кавычками и без, тут непонятно):
▲ cat ~/.config/VkMusicFs/VkMusicFs.ini
token=f7***********************************************************************************3
user_agent=KateMobileAndroid/40.4 lite-394 (Android 4.4.2; SDK 19; x86; unknown Android SDK built for x86; en)
- Создал папку и по инструкции подмаунтил:
▲ ~ mkdir VkMusicFs
▲ ~ vk_music_fs ~/VkMusicFs
- В ~/VkMusicFs стало 4 новых директории, но все пустые. Не получается никак создать папку, ругается на пермишены, файлов тоже никаких нет.
Подумал что дело в пермишенах — но любые комбинации chown -R и chmod 777 не помогают. Подумал что в .ini что-то не так написал — но разные комбинации не решают проблему. Подумал что в домашней директории проблема, но из /mnt тот же результат На всякий случай ещё c root юзером попробовал — тоже не помогло. Не понимаю тоже где смотреть логи — journalctl отдает только сообщения с успешным mount
Что можно попробовать сделать?
@Mayurifag Не удобнее ли создать отдельный пароль? Это в Настройки -> Безопасность -> Пароли приложений в браузерном интерфейсе ВК. По-моему, проще, чем так подменять User-Agent расширением.
Насчёт пустых директорий. Попробуйте vk_music_fs ~/VkMusicFs --log_err_to_file 1
, лог будет по умолчанию в /home/username/.config/VkMusicFs/ErrorLog.txt
. Ошибка с правами — стандартное сообщение, что что-то не так. Тоже стоит написать про это в README, хотя мне казалось, что это логично, как ещё сказать об ошибке файловому менеджеру. И ещё с опцией -d
можно запустить: vk_music_fs ~/VkMusicFs -d
, из терминала. На всякий случай, напишу, что у меня всё работает.
Да, вот действительно через пересозданный токен с помощью генерированного пароля всё заработало, спасибо! А так — на токен ругалось.
С кодом приложения выдаёт:
terminate called after throwing an instance of 'nlohmann::detail::type_error'
what(): [json.exception.type_error.302] type must be string, but is null
Aborted (core dumped)
Прикрыли лавочку?