Closed roushkaman closed 11 years ago
vkontakte_api
никак не изменяет url-ы треков - они возвращаются ровно в том виде, в котором их возвращает вконтакте.
Ключевая фраза - "браузер и php это разные пользователи": если перефразировать на человеческий язык, запрос с сервера нужно авторизовать с сервера, а запрос из браузера нужно авторизовать через браузер - трек будет доступен по полученному урлу только для того IP-адреса, с которого был получен токен. То есть если авторизация проведена через метод VkontakteApi.authorize(code: params[:code])
(серверный вариант), то трек можно будет только скачать на сервер, а уже оттуда отдавать в браузер. Если нужно отдавать из вконтакта напрямую в браузер, то и авторизовывать нужно через браузер - тут уже данный гем вряд ли поможет.
Ясно, плохо конечно, но спасибо =)
Извините что вас бес толку может беспокою снова. Но если мне попробовать клиентскую авторизацию? VkontakteApi.authorization_url(type: :client, scope: [:audio]) То как мне выловить access_token?
Нужно поставить VkontakteApi.redirect_uri
на https://oauth.vk.com/blank.html
. После подтверждения юзером прав пойдет редирект на этот blank.html, причем в урле будет содержаться токен - что-то вроде этого: https://oauth.vk.com/blank.html#access_token=4ccecbfa8c054a12438576cb3a4cf85e3b48cc84ccc571d1c039762fce315ee86fc53ce&expires_in=86400&user_id=628985
. В веб-приложении вытащить его оттуда не получится - нужен контроль над адресной строкой браузера.
Но эта авторизация нужна для других методов API - для работы со стеной, личными сообщениями итд. Чтобы аудиотреки были доступны в браузере, нужен яваскрипт.
Ага, спасибо большое!
после поиска аудиозаписей
VkontakteApi::Client.new(session[:token]).audio.get(uid: 167270710)
возвращает хэш с трэками, только вот проблема, генерит не верные url для скачивания допустим, помогите решить пожалуйста эту проблему
вот что нашел в постах: "Для каждого пользователя ссылка на файл является уникальной. Прежде, чем получить ссылку, вы должны представится системе. Естественно, браузер и php это разные пользователи. Либо вы должны имитировать через headers/curl браузер."
взято от сюда: http://hashcode.ru/questions/161857/php-404-not-found-%D0%BF%D1%80%D0%B8-%D0%BF%D0%BE%D0%BF%D1%8B%D1%82%D0%BA%D0%B5-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-get_headers-vk