Comments 40
Для чего эта запятая в заголовке?
то чего в статье не хватает:
...&scope=offline,wall,friends,email&...
права используемые при регистрации Афишей.Все очевидно же: афиша каким-то образом сотрудничает с ВКонтакте.
Простым типичным сайтам данная возможность недоступна.
Более точную информацию уточняйте в тех. поддержке ВКонтакте.
Простым типичным сайтам данная возможность недоступна.
Более точную информацию уточняйте в тех. поддержке ВКонтакте.
Для «избранных» апи контакта немного богаче. Например можно отправлять посты на стену с сервера (wall.post). Но попасть в список этих самых «избранных» простому смертному нереально.
Именно. На всякий случай даже перепроверил: Permission to perform this action is denied for non-standalone applications: you should request token using blank.html page
Хотя приложение создавал как standalone.
Хотя приложение создавал как standalone.
Вот один раз, через этот blank.html нужно получить токен, а дальше сделать так, чтобы он указывался в запросах к API.
Давно уже не использовал API вконтакта, но только что перепроверил процедуру, указанную в статье по ссылке выше — все заработало. Хоть на свою стену, хоть на стену своей группы/публичной страницы.
Надо отметить, что я шлю запросы на api.vk.com/method/, как указано на этой странице документации. Собственно, там и видно, что из секретных кодов требуется только ранее полученный access_token.
Давно уже не использовал API вконтакта, но только что перепроверил процедуру, указанную в статье по ссылке выше — все заработало. Хоть на свою стену, хоть на стену своей группы/публичной страницы.
Надо отметить, что я шлю запросы на api.vk.com/method/, как указано на этой странице документации. Собственно, там и видно, что из секретных кодов требуется только ранее полученный access_token.
А не подскажите, blank.html подразумевается вконтактовый? Или на стороне моего сервера?
В первом случа непонятно как токен выдрать на стороне сервера.
В первом случа непонятно как токен выдрать на стороне сервера.
blank.html будет вконтактовый.
Чтобы получить токен, нужно сначала получить адрес, куда вконтакт перенаправил запрос, как-то так: stackoverflow.com/questions/4062819/curl-get-redirect-url-to-a-variable
А дальше его распарсить и получить токен.
Чтобы получить токен, нужно сначала получить адрес, куда вконтакт перенаправил запрос, как-то так: stackoverflow.com/questions/4062819/curl-get-redirect-url-to-a-variable
А дальше его распарсить и получить токен.
Не совсем понял:
1) формируем спец ссылку для авторизации с blank.html и перенаправляем туда пользователя
2) пользователь подтверждает права
3) вконтакт со своей же странички редиректит на свою blank.html страницу
Между 2 и 3 все происходит без участия моего сервера или нет?
1) формируем спец ссылку для авторизации с blank.html и перенаправляем туда пользователя
2) пользователь подтверждает права
3) вконтакт со своей же странички редиректит на свою blank.html страницу
Между 2 и 3 все происходит без участия моего сервера или нет?
Честно говоря, не использовал API вконтакта для многопользовательской работы, только так, как написано в моей статье. Насколько понимаю, у вас есть сайт, где авторизуются пользователи, и далее вы хотите с сервера выполнять некоторые действия для этих пользователей. В документации отлично описан этот способ авторизации — vk.com/dev/auth_sites, и показано, что можно указывать свой адрес для редиректа.
Но учитывая тему ветки комментариев — использование метода wall.post, хочу сказать, что насколько я помню, сайтам нельзя использовать эти методы. Только standalone-приложениям.
Вот сейчас проверил документацию: vk.com/dev/wall.post
Сторонним сайтам можно использовать, но только используя такое окно подтверждения. Значит, если не ошибаюсь, со стороны сервера нельзя:
Все, что я сейчас написал — чисто теория, которую необходимо проверять эксперментально. В помощь вам документация по работе с вконтактом :)
Но учитывая тему ветки комментариев — использование метода wall.post, хочу сказать, что насколько я помню, сайтам нельзя использовать эти методы. Только standalone-приложениям.
Вот сейчас проверил документацию: vk.com/dev/wall.post
Данный метод доступен только Standalone-приложениям и web-приложениям, использующим окно подтверждения.
Сторонним сайтам можно использовать, но только используя такое окно подтверждения. Значит, если не ошибаюсь, со стороны сервера нельзя:
Доступ к некоторым методам, предназначенным для вызова из Standalone-приложений, может быть получен также из Flash/IFrame-приложений и сторонних сайтов. При этом автоматически будет инициализировано окно для подтверждения действия пользователем.
Все, что я сейчас написал — чисто теория, которую необходимо проверять эксперментально. В помощь вам документация по работе с вконтактом :)
Документацию я прочитал, сделал standalone приложение (хотя у меня как бы и веб-сайт), которому для полноты ощущений надо получать токен именно через blank.html, сотвественно красиво и без хакерства такое не провернуть (заодно и бан влепят), а обычный oauth с редиректом на свой домен урезает функционал и толку от работы с API вконтакта просто нет.
Попутно выяснилось что куча проблем с загрузкой картинок, то ли токен не тот, то ли 3 строчки curl кода хитрее должны быть.
В общем мы решили забить на VK, много гемороя и ограничений для красивой и правильной реализации, FB к примеру за пару секунд подключил и всё работает как надо.
Попутно выяснилось что куча проблем с загрузкой картинок, то ли токен не тот, то ли 3 строчки curl кода хитрее должны быть.
В общем мы решили забить на VK, много гемороя и ограничений для красивой и правильной реализации, FB к примеру за пару секунд подключил и всё работает как надо.
Я тоже это имел ввиду.
Я уж подумал, что статья про уязвимость. Из того, что я видел, давно уже на Badoo такое же.
На основе договорённостей отдельным прилам дают доступ к email.
Общедоступно уверен не стоит ждать, несёт много проблем юзерам.
На основе договорённостей отдельным прилам дают доступ к email.
Общедоступно уверен не стоит ждать, несёт много проблем юзерам.
Думал, Вы потешите очередной уязвимостью. Увы, видимо, не мой сегодня день.
Вконтакте не отдает email еще и потому, что он не у всех есть, у кого-то привязан только телефон.
На facebook тоже не у всех есть email. Для тех, у кого нет, отдается username@facebook.com — письма на этот ящик приходят как личные сообщения.
А можно поподробнее про случай, когда на фб нет email и в API отдается username@facebook?
А я уже обрадовался, что ВК начал отдавать мейлы как фейсбук. Но не судьба
VK мог бы выдавать хешь email'а, чтобы можно было привязать пользователя заходящего через VK к его аккаунту на сайте.
А для связи с новыми пользователями подошёл бы email от VK, вроде username@vk.com
А для связи с новыми пользователями подошёл бы email от VK, вроде username@vk.com
Кстати, сейчас получение email доступно всем приложениям (привет П.Дуров), если указать одноименный скоуп «email».
Только вот проблема одна возникла.
У меня несколько проектов на Ruby on Rails.
В одном я использую gem «oauth2» для авторизации, который в callback-метод получает этот самый email, всё классно.
А в другом проекте используются «devise» + «omniauth-vkontakte» (и другие «omniauth-...»), и никак не получается достать почтовый адрес, где-то теряется на полпути. Если вдруг кто-то в теме – буду признателен. Заранее спасибо.
Только вот проблема одна возникла.
У меня несколько проектов на Ruby on Rails.
В одном я использую gem «oauth2» для авторизации, который в callback-метод получает этот самый email, всё классно.
А в другом проекте используются «devise» + «omniauth-vkontakte» (и другие «omniauth-...»), и никак не получается достать почтовый адрес, где-то теряется на полпути. Если вдруг кто-то в теме – буду признателен. Заранее спасибо.
Уже наладили ребята всё этим коммитом.
Можно пользоваться по-человечески.
Можно пользоваться по-человечески.
«Доступ к email пользователя. Доступно только для сайтов.»
Из официальной документации.
Из официальной документации.
Хм… Интересно, насчет доступности emaila — ранее не слышал. Сегодня нужно будет проверить. Спасибо за информацию.
Разобрался с этой проблемой!
Вконтакте выдает емайл при получении токена.
И то может не отдать, потому что, во вконтакте, емайл — это не обязательное поле у юзера, его может просто не быть!
Так что все работает, просто есть ньюансы сбивающие с толку!
Вконтакте выдает емайл при получении токена.
И то может не отдать, потому что, во вконтакте, емайл — это не обязательное поле у юзера, его может просто не быть!
Так что все работает, просто есть ньюансы сбивающие с толку!
Sign up to leave a comment.
Получение email пользователя через API Вконтакте