Pull to refresh

Comments 40

Для чего эта запятая в заголовке?
Спасибо, не заметил. Уже исправил. Разлил кофе и кнопка живет своей жизнью.
то чего в статье не хватает: ...&scope=offline,wall,friends,email&... права используемые при регистрации Афишей.
Не подумал. А изменения списка прав результата не дали.
Подтверждаю. Попробовал своему приложению такой список прав задать — не сработало.
Все очевидно же: афиша каким-то образом сотрудничает с ВКонтакте.

Простым типичным сайтам данная возможность недоступна.

Более точную информацию уточняйте в тех. поддержке ВКонтакте.
UFO landed and left these words here
UFO landed and left these words here
Для «избранных» апи контакта немного богаче. Например можно отправлять посты на стену с сервера (wall.post). Но попасть в список этих самых «избранных» простому смертному нереально.
UFO landed and left these words here
Именно. На всякий случай даже перепроверил: Permission to perform this action is denied for non-standalone applications: you should request token using blank.html page
Хотя приложение создавал как standalone.
Вот один раз, через этот blank.html нужно получить токен, а дальше сделать так, чтобы он указывался в запросах к API.
Давно уже не использовал API вконтакта, но только что перепроверил процедуру, указанную в статье по ссылке выше — все заработало. Хоть на свою стену, хоть на стену своей группы/публичной страницы.
Надо отметить, что я шлю запросы на api.vk.com/method/, как указано на этой странице документации. Собственно, там и видно, что из секретных кодов требуется только ранее полученный access_token.
А не подскажите, blank.html подразумевается вконтактовый? Или на стороне моего сервера?
В первом случа непонятно как токен выдрать на стороне сервера.
Не совсем понял:
1) формируем спец ссылку для авторизации с blank.html и перенаправляем туда пользователя
2) пользователь подтверждает права
3) вконтакт со своей же странички редиректит на свою blank.html страницу
Между 2 и 3 все происходит без участия моего сервера или нет?
Честно говоря, не использовал API вконтакта для многопользовательской работы, только так, как написано в моей статье. Насколько понимаю, у вас есть сайт, где авторизуются пользователи, и далее вы хотите с сервера выполнять некоторые действия для этих пользователей. В документации отлично описан этот способ авторизации — vk.com/dev/auth_sites, и показано, что можно указывать свой адрес для редиректа.

Но учитывая тему ветки комментариев — использование метода wall.post, хочу сказать, что насколько я помню, сайтам нельзя использовать эти методы. Только standalone-приложениям.

Вот сейчас проверил документацию: vk.com/dev/wall.post

Данный метод доступен только Standalone-приложениям и web-приложениям, использующим окно подтверждения.


Сторонним сайтам можно использовать, но только используя такое окно подтверждения. Значит, если не ошибаюсь, со стороны сервера нельзя:
Доступ к некоторым методам, предназначенным для вызова из Standalone-приложений, может быть получен также из Flash/IFrame-приложений и сторонних сайтов. При этом автоматически будет инициализировано окно для подтверждения действия пользователем.

Все, что я сейчас написал — чисто теория, которую необходимо проверять эксперментально. В помощь вам документация по работе с вконтактом :)
Документацию я прочитал, сделал standalone приложение (хотя у меня как бы и веб-сайт), которому для полноты ощущений надо получать токен именно через blank.html, сотвественно красиво и без хакерства такое не провернуть (заодно и бан влепят), а обычный oauth с редиректом на свой домен урезает функционал и толку от работы с API вконтакта просто нет.
Попутно выяснилось что куча проблем с загрузкой картинок, то ли токен не тот, то ли 3 строчки curl кода хитрее должны быть.
В общем мы решили забить на VK, много гемороя и ограничений для красивой и правильной реализации, FB к примеру за пару секунд подключил и всё работает как надо.
UFO landed and left these words here
Понял о чем вы. Хотя мне казалось, изначально спрашивалось просто об отправке с сервера.
UFO landed and left these words here
Я уж подумал, что статья про уязвимость. Из того, что я видел, давно уже на Badoo такое же.
На основе договорённостей отдельным прилам дают доступ к email.
Общедоступно уверен не стоит ждать, несёт много проблем юзерам.
Ну Facebook живет и ничего, никто не жалуется.
Думал, Вы потешите очередной уязвимостью. Увы, видимо, не мой сегодня день.
Вконтакте не отдает email еще и потому, что он не у всех есть, у кого-то привязан только телефон.
На facebook тоже не у всех есть email. Для тех, у кого нет, отдается username@facebook.com — письма на этот ящик приходят как личные сообщения.
А, что подробнее, не у всех пользователей Фейсбука есть email. И в таком случае пользователю присваивается эмайл вида, как упомянуто в сообщении выше username@facebook.com. Но прямого доступа к этому ящику нет. Все сообщения пришедшие на этот ящик, приходят как личные сообщения в ФБ.
VK мог бы выдавать хешь email'а, чтобы можно было привязать пользователя заходящего через VK к его аккаунту на сайте.

А для связи с новыми пользователями подошёл бы email от VK, вроде username@vk.com
Кстати, сейчас получение email доступно всем приложениям (привет П.Дуров), если указать одноименный скоуп «email».

Только вот проблема одна возникла.

У меня несколько проектов на Ruby on Rails.
В одном я использую gem «oauth2» для авторизации, который в callback-метод получает этот самый email, всё классно.
А в другом проекте используются «devise» + «omniauth-vkontakte» (и другие «omniauth-...»), и никак не получается достать почтовый адрес, где-то теряется на полпути. Если вдруг кто-то в теме – буду признателен. Заранее спасибо.
«Доступ к email пользователя. Доступно только для сайтов.»

Из официальной документации.
Хм… Интересно, насчет доступности emaila — ранее не слышал. Сегодня нужно будет проверить. Спасибо за информацию.
Ага, работает! Правда, только с новыми приложениями. Надо указать scope 'email' и забрать при получении access_token (https://vk.com/dev/auth_sites).
Разобрался с этой проблемой!
Вконтакте выдает емайл при получении токена.
И то может не отдать, потому что, во вконтакте, емайл — это не обязательное поле у юзера, его может просто не быть!

Так что все работает, просто есть ньюансы сбивающие с толку!
На момент написания статьи, было немного по другому. Не было такой привязки по телефону, а только по эмайлу.
Sign up to leave a comment.

Articles