Comments 79
А возможно ли таким образом получить имя пользователя хотя бы?
0
Можно, но через Javascript API лишь (прошу поправить, если я не прав, но в документации про это ни слова).
Т.е., видимо, если хочется сохранить Имя пользователя Вконтакте — нужно сначала получить его через Javascript, а после — отправить результат в свое приложение.
Т.е., видимо, если хочется сохранить Имя пользователя Вконтакте — нужно сначала получить его через Javascript, а после — отправить результат в свое приложение.
+1
ссылку не подскажете где посмотреть про этот Javascript API?
0
+1
У меня в голове возникает только один вопрос: Почему документация по технологиям разбросана по всему интернету? То userapi.com / userapi.ru / durov.at и т.д. Что нельзя это в один раздел запихнуть?? например dev.vkontakte.ru
+7
Хороший вопрос. Качество документации и ее разброс по всему инет, а также отсутствие не то что поддержки, а даже пути баг репорта — наводит на плохие мысли.
+1
Хм, похоже, нынче ссылка эта недоступна.
Тогда так: http://vkontakte.ru/club1
Тогда так: http://vkontakte.ru/club1
0
Например, вот так — ссылка на статью в моем блоге
0
т.е в теории доверять этой информации смысла нет?
0
Кстати, все таки есть адрес api.vkontakte.ru/api.php, на который можно посылать команды для совершения внутренних действий, например перевести голоса от приложения пользователю и получить результат операции, возможно поддерживаются и другие методы, например, для получения информации о пользователе (уже авторизовавшемся на вашем сайте через open api).
vkontakte.ru/pages.php?o=-1&p=%C7%E0%F9%E8%F9%E5%ED%ED%EE%E5%20%E2%E7%E0%E8%EC%EE%E4%E5%E9%F1%F2%E2%E8%E5%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%FF%20%F1%20API
vkontakte.ru/pages.php?o=-1&p=%C7%E0%F9%E8%F9%E5%ED%ED%EE%E5%20%E2%E7%E0%E8%EC%EE%E4%E5%E9%F1%F2%E2%E8%E5%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%FF%20%F1%20API
+1
А вот тут вопрос о безопастрости такого решения: я почитал документацию OpenAPI, и не нашел никаких данных о подписи ответных данных от API. Иными словами любой может подделать информацию о себе, которая будет получаться через Javascript (например подделать результат запроса getProfiles).
Если я не прав, поправьте меня.
Если я не прав, поправьте меня.
0
Да, все так. Но вот тут уже рассказали про другой способ: http://habrahabr.ru/blogs/php/92518/#comment_2800633
0
UFO just landed and posted this here
Сказать можно много в ответ. Но я лишь спрошу — как с получением email?
0
Судя по всему, никак. Да и слишком большой дырой в безопасности было бы давать email пользователей сторонним сайтам.
+1
Для блога например авторизация нафиг не нужна. Нужна идентификация и мыло.
А насчет дыры — поясните, если не трудно.
А насчет дыры — поясните, если не трудно.
0
Назвав это «дырой», я конечно, немного преувичил, но вряд ли вконтакте будет отдавать всем кому попало email'ы своих пользователей. Если я не прав и вконтакте уже это делает — пожалуйста, поправьте, кто может =)
+2
Что значить кому попало?
Человек хочет авторизоваться на сайте. Он может это сделать вручную введя вся данные, подтвердив мыло и так далее. Либо подтвердив свои данные через сторонний сервис в два клика.
Проблема в том что мне надо знать 1. Имя 2. Мыло — так уж устроен сайт ( да и большинство сайтов в инете ). Мне даже пофиг будет ли мыло настоящее :)
Человек хочет авторизоваться на сайте. Он может это сделать вручную введя вся данные, подтвердив мыло и так далее. Либо подтвердив свои данные через сторонний сервис в два клика.
Проблема в том что мне надо знать 1. Имя 2. Мыло — так уж устроен сайт ( да и большинство сайтов в инете ). Мне даже пофиг будет ли мыло настоящее :)
0
записывайте к себе в базу email для пользователей, которые авторизуются через вконтакт, например: id@vkontakte.ru. Ну а на будущее — у каждого пользователя вконтакте будет свой email вида: nickname@vkontakte.ru. Думаю nickname можно будет узнать через api.
+2
Facebook например предоставляет «кому попало» и е-мейл и даже место жительства, конечно же из соглашения пользователя для каждого отдельного веб-сайта
0
Ну, фактически, вы получаете доступ к id пользователя, что (после приложения минимума усилий) позволяет вам связаться с ним прямо на vkontakte.
0
После входа пользователя вконтакте перекидываем его на отдельную страницу (в моем случае это vk.php), где проверяем, зарегистрирован ли уже пользователь с таким vk_id. Если нет — показываем ему упрощенную форму регистрации (например, только логин и email). После чего создаем пользователя и перекидываем только что зарегистрированного посетителя на главную страницу.
Достаточно большая вероятность того, что введенный e-mail совпадет с контактовским. Я бы сказал о 80-90 процентах. Впрочем это имхо.
+1
программными методами с вашей стороны есть возможность реализовать слияние двух акканутов на вашем сайте ( вконтакте + пользователь вашего сайта ), если это один пользователь. Плюс возможность из личного кабинета пользователя привязать аккаунт вконтакте и авторизоваться в последующем через него. Главное — каким образом вы реализуете удобные и понятные для пользователя интерфейсы взаимодействия с вконтактом.
0
Поддерживаю насчёт документации. Не сразу въехал что к чему и тоже смог разобраться только по сайту durov.at
+1
а можно обойтись как то без создания приложения? и вообще чего там за приложение надо? уж больно геморойно это всё =( а сделать надо
0
Приложение создать придется в любом случае, сделать это можно здесь: vkontakte.ru/apps.php?act=add&site=1
В целом — ничего сложного. Заполняете адрес сайта, получается id и password и заменяете ими те, что указаны в моем коде.
В целом — ничего сложного. Заполняете адрес сайта, получается id и password и заменяете ими те, что указаны в моем коде.
0
наверно чего то не так делаю: Open API security breach =((
0
Это вы уже с собственным приложением?
Если да, то вот тут еще нужно поменять ID: github.com/Kolger/open-api/blob/master/lib/login_form.html, заменить «apiId: 1868779,» на ваш apiId.
Если да, то вот тут еще нужно поменять ID: github.com/Kolger/open-api/blob/master/lib/login_form.html, заменить «apiId: 1868779,» на ваш apiId.
+1
Эта ошибка возникает, когда заданный в настройках URL отличается от фактического.
0
Приложение нужно для того, чтобы вы приняли условия соглашения от ВКонтакте. В частности, на сайтах, на которых используется вход через контакт, нельзя пользоваться никакой платежной системой, кроме контактовской.
+1
Надеюсь, они поменяют такое нелепое правило.
+1
Думаю, что для них это не нелепое правило, а основная причина, по которой стали городить весь этот огород с OpenAPI и не реализовали стандартный OpenID. Буду рад, если ошибаюсь. Но ни одной другой разумной причины найти не могу.
+1
М-м-м…
define ('VK_APP_ID', 'vk_app_1868779');
define ('VK_APP_PASSWORD', 'q2L3DWlLse0Wtah6nMTR');
А мож не стоит так вот делать, особенно в репозитории?
define ('VK_APP_ID', 'vk_app_1868779');
define ('VK_APP_PASSWORD', 'q2L3DWlLse0Wtah6nMTR');
А мож не стоит так вот делать, особенно в репозитории?
0
Это специальное приложение, которое я сделал именно для этого примера.
Приложение это настроено на URL openapi.lc, дабы упростить процесс настройки примера.
Приложение это настроено на URL openapi.lc, дабы упростить процесс настройки примера.
0
Думаю, это надо было засунуть в конструктор Auth_Vkontakte. Заодно и в примере было бы сразу видно, куда втыкать ИД и Пароль аппсы.
Также, если вы хотите вдальнейшем сделать из этого библиотеку, я бы порекомендовал убрать
public function render_login_form() {
return file_get_contents(«lib/login_form.html»);
}
Как-то уж совсем нехорошо. По сути ПХП только проверяет, залогинен пользователь или нет, а логин сам по себе происходит через хтмл форму. Для примера сойдет и так, хотя если будет отдельная библиотека, то как выглядит хтмл форма — уже не ее дело =)
Также, если вы хотите вдальнейшем сделать из этого библиотеку, я бы порекомендовал убрать
public function render_login_form() {
return file_get_contents(«lib/login_form.html»);
}
Как-то уж совсем нехорошо. По сути ПХП только проверяет, залогинен пользователь или нет, а логин сам по себе происходит через хтмл форму. Для примера сойдет и так, хотя если будет отдельная библиотека, то как выглядит хтмл форма — уже не ее дело =)
0
Самое сложное в этом вопросе — распознать оригинальную форму Контакта от подложки для кражи паролей. Потому как они тем самым открыли мегабрешь в безопастности. Я бы сказал, из стен укреплений, деликатно отодвинули 2 из 4-х. Две оставшиеся — для лохов.
+2
Пользователей gmail в разы больше, чем вконтакта, однако они не торопятся авторизоваться на моем болге через свой мэйл. Вопрос доверия к ресурсу, а не удобстве пользования.
+2
И чем их OpenID не устроил? Городят свою проприетарщину (еще Open API называют, вот в каком извините месте оно Open?), как будто пытаются завязать весь Интернет на себе. Не получится это у VKontakte, максимум что выйдет — отгородиться от Интернета толстой стенкой из пуленепробиваемых велосипедов.
Или может я просто чего-то не понимаю?..
Или может я просто чего-то не понимаю?..
+4
OpenID это для аутентификации, а Open API для авторизации, но люди заодно используют это и как средство для аутентификации. Различается это всё тем что по идее после авторизации по Open API вы разрешаете сайту творить с вашим эккаунтом определённые действия, например изменять статус за вас или ещё какие то действия. Здесь больше уместно сравнение с технологией OAuth, чем с OpenID.
Но то что у них велосипед… Я бы не сказал, велосипед сделал FaceBook у которого они его и взяли, так что получается они не городили своё, а взяли уже готовую вещь (теоретически готовую).
Но то что у них велосипед… Я бы не сказал, велосипед сделал FaceBook у которого они его и взяли, так что получается они не городили своё, а взяли уже готовую вещь (теоретически готовую).
+2
Это сделано для того, чтобы каждый сайт, который подключает вход через vkontakte, согласовывал это действие с vkontakte. В процессе согласования на сайты накладываются некоторые ограничение: например, нельзя использовать сторонние платежные системы, можно только контактовскую. Т.е. если у вас прикручена робокасса или WebMoney, то вход через vkontakte вам не сделать (или сделать, но потом по правилам приложение отрубят и это будет epic fail — пользователи потеряют возможность входить в свои аккаунты). Можно еще сказать так: если у вас прикручен вход через вконтакте, то платежи через WebMoney в дальнейшем принимать на сайте будет нельзя, можно будет только через их собственную платежную систему. В случае OpenID так ограничить сайтовладельцев сложно.
habrahabr.ru/blogs/social_networks/92523/
habrahabr.ru/blogs/social_networks/92523/
+2
Спасибо, всё работает! про мордокнигу конечно же пишите!
+1
Я так понял, приложение одобрять не обязательно?
0
eien.farm.lv
Вот настроенное приложение… Это если лень или не охота настраивать просто чтобы глянуть.
* Также заметил глюк: если не было куки для авторизации, то после ввода всех данных, в первый раз возвращает Auth error — но если нажать заново на кнопку (войти Вконтакте), тогда все в порядке, с чем это связано?
PS. Юзаю хром, также, чтобы проверить глюк можно использовать режим «инкогнито» в Вашем браузере.
Вот настроенное приложение… Это если лень или не охота настраивать просто чтобы глянуть.
* Также заметил глюк: если не было куки для авторизации, то после ввода всех данных, в первый раз возвращает Auth error — но если нажать заново на кнопку (войти Вконтакте), тогда все в порядке, с чем это связано?
PS. Юзаю хром, также, чтобы проверить глюк можно использовать режим «инкогнито» в Вашем браузере.
+2
сделал бы кто-нибудь плагин к wordpress для авторизации/возможности оставления комментариев под id вконтакте. полезная вещь была бы тоже, я думаю.
+1
Если добрый системный администратор закроет в корпоративной сети доступ к Контакту, то офисные работники не смогут получить доступ к сервисам Вашего сайта… ))) Так что у этой медали далеко не одна сторона…
+1
Да, документация Вконтакте оставляет желать…… документации. Что же касается Facebook Connect — то у этих ребят, к счастью, документация на высоте — сложно остаться в неведении. Но статейка на хабре будет не лишней, опыт никогда не бывает лишним.
0
Как раз недавно бранился на «доки» ихние. Благодарю за разъяснения. =)
Подобное описание FB Connect тоже не помешает, ибо в рунете практически ничего толкового на эту тему нет.
Подобное описание FB Connect тоже не помешает, ибо в рунете практически ничего толкового на эту тему нет.
0
Ещё стоит упомянуть про особенность параметра nameTransportPath. Пару часов убил на то, чтобы определить почему авторизация не работает и какие значения он кушает, а какие нет.
Авторизация работает, только если в нем указан relative path!
Т.е ни «xd_receiver.htm», ни «httр://domain.com/vk/xd_receiver.htm» не прокатывает. Только "/vk/xd_receiver.htm".
В php лечится миксом из функций parse_url() и pathinfo() в случае, если домен-каталог веб-приложения задаётся через конфиги.
Авторизация работает, только если в нем указан relative path!
Т.е ни «xd_receiver.htm», ни «httр://domain.com/vk/xd_receiver.htm» не прокатывает. Только "/vk/xd_receiver.htm".
В php лечится миксом из функций parse_url() и pathinfo() в случае, если домен-каталог веб-приложения задаётся через конфиги.
+1
Огромное спасибо за пример.
А Open API можно добавить к текущему рабочему приложению или надо создавать новое? Я бы не спрашивал, но что-то при тестовых попытках это сделать всё работает через раз.
А Open API можно добавить к текущему рабочему приложению или надо создавать новое? Я бы не спрашивал, но что-то при тестовых попытках это сделать всё работает через раз.
0
Полностью согласен с автором! Сам с этим столкнулся!
0
Прицепил регистрацию через Open API на сайт. Скрипты асинхронные. В опере через раз JS выбивает такую ошибку
i10.fastpic.ru/big/2010/0926/8e/c4e71ec2f725c...
т.е. не может обратиться к какой-то защищенной переменной «closed».
То сразу выбивает и не входит. То пару раз нормально, на третий раз ошибка. Замечано только в Опере на разных компах. С чем это может быть связано?
i10.fastpic.ru/big/2010/0926/8e/c4e71ec2f725c...
т.е. не может обратиться к какой-то защищенной переменной «closed».
То сразу выбивает и не входит. То пару раз нормально, на третий раз ошибка. Замечано только в Опере на разных компах. С чем это может быть связано?
0
Сорри, вот ссылка на ошибку
i10.fastpic.ru/big/2010/0926/8e/c4e71ec2f725c69e6abbf6dbee067f8e.gif
i10.fastpic.ru/big/2010/0926/8e/c4e71ec2f725c69e6abbf6dbee067f8e.gif
0
Проблему не решил, но обошел JS-таймером.
0
Не известно, как скоро появится нормальная система авторизации для сайтов от Вконтакте?
0
Работал работал, да в последние недели чтото перестал работать скрипт этот(
0
По этому алгоритму хакер может авторизоваться на Вашем сайте под любым пользователем просто зная его ID в контакте (публичен) и подделав данные в запросе авторизации на Ваш сервер.
0
Sign up to leave a comment.
Авторизация через ВКонтакте