Пожалуй, заголовок моей темы, уже избит до неузнаваемости и даже, может вызвать саркастические улыбки на лицах читателей. Но, все же, я попробую.
Хоть и занимаясь веб разработкой, да и программированием в целом не так давно, мне все же пришлось столкнуться с API социальных сетей, таких как Facebook и Вконтакте. Робота с «лайками» и другими данными проходила на ура.
Но вот, попал в тупиковую ситуацию: как мне связать пользователей в общий аккаунт(проблема была следующая Вконтакте, в отличии от своего старшего брата, упорно не хотел отдавать email пользователя). Перечитав множество, форумов, разнообразных FAQ, пришел к выводу, что это все же невозможно. Мол, разработчики социальной сети, не хотят выдавать столь конфиденциальную информацию о своих пользователях. С этим пришлось смириться. Поставленная задача была решена другим способом, а в душе затаилась небольшая обида.
Но, мой пост, немного не об этом. Буквально сегодня наткнулся на следующий сайт: afisha.ru. На первый взгляд обычный сайт на просторах рунета. Но самое интересное для меня было внутри, когда я решил войти под пользователем.
Как получить текст объявления через API VK
Что бы долго не регистрироваться, я быстро нажал кнопку войти через Вконтакт и тут меня ждало первое удивление, стандартное окно, для запроса прав к приложению, не считая того, что оно может получить мой email.
После этого в личном кабинете, в личных данных, спокойно высветился, мой email.
Полез в интернет, там ни каких новостей нет на эту тему, в разделе Конаткта про API тоже тишина.
Новостей, про сто что Контакт все же отдает email, я не нашел.
Так что же, скоро и они нас этим порадуют? или это последствия апокалипсиса Майя?
- вконтакте api
- вконтакте email
- социальные сети
- Разработка веб-сайтов
- ВКонтакте API
Источник: habr.com
Api vk получить email
Добрый день! Уже весь день мучаюсь, самому не удалось решить проблему. Делаю аутентификацию через соц сети, в частности, через Vk, но не могу получить email, указал scope, передал в fields, которые надо получить, как пользователь кликнул «Разрешить» использовать эти данные, но все равно пишет Notice: Undefined index: email in .
Подскажите в чем проблема. Спасибо!
Страница с самой аутентификацией:
$client_id = ‘555555555’ ; // ID приложения
$client_secret = ‘qwqwqwqwqwqwqwwqwqwqw’ ; // Ключ приложения
$redirect_uri = ‘http://localhost/user/site’ ; // Адрес сайта
Страница с обработчиком, куда делает редирект:
if (isset( $_GET [ ‘code’ ])) <
$result = false ;
$params = array(
‘client_id’ => $client_id ,
‘client_secret’ => $client_secret ,
Бесстыжая ЯНА / Массовое кидалово в автосалоне / Полиция опоздала
‘code’ => $_GET [ ‘code’ ],
‘redirect_uri’ => $redirect_uri
);
$token = json_decode ( file_get_contents ( ‘https://oauth.vk.com/access_token’ . ‘?’ . urldecode ( http_build_query ( $params ))), true );
if (isset( $token [ ‘access_token’ ])) $params =array(
‘uids’ => $token [ ‘user_id’ ],
‘fields’ => ‘uid,first_name,last_name,email’ ,
‘access_token’ => $token [ ‘access_token’ ]
);
$userInfo = json_decode ( file_get_contents ( ‘https://api.vk.com/method/users.get’ . ‘?’ . urldecode ( http_build_query ( $params ))), true );
if (isset( $userInfo [ ‘response’ ][ 0 ][ ‘uid’ ])) $userInfo = $userInfo [ ‘response’ ][ 0 ];
$result = true ;
>
>
if ( $result ) echo «Имя: » . $userInfo [ ‘first_name’ ] . ‘
‘ ;
echo «Фамилия: » . $userInfo [ ‘last_name’ ] . ‘
‘ ;
echo «Имейл: » . $userInfo [ ’email’ ] . ‘
‘ ;
>
>
Решение (email лежит в токене):
if (isset($userInfo[‘response’][0][‘uid’])) $userInfo[‘response’][0][’email’] = $token[’email’];
$userInfo = $userInfo[‘response’][0];
$result = true;
>
echo «Имейл пользователя: » . $userInfo[’email’] . ‘
‘;
Последний раз редактировалось Yan9; 23.10.2015 в 01:34 .
Источник: www.programmersforum.ru
Как получить адрес электронной почты от vk.api?
Я пытаюсь получить адрес электронной почты. После успешного входа у меня есть имя, фамилия, все, кроме электронной почты. пожалуйста, помогите.
VK.Auth.login(function (response) < if (response.session) < >else < >>, 4194304);
Evgeniy Shinkarenko 27 авг. 2014, в 15:55
Поделиться
почта только для сайтов (маска +4194304). vk.com/dev/permissions
Ivan Ivanov 18 сен. 2014, в 10:45
Поделиться:
5 ответов
Лучший ответ
Нет никакого способа сделать это. Vk — это определенная социальная сеть. У меня такая же проблема.
funivan 18 сен. 2014, в 10:22
Поделиться
Когда вы получаете токен доступа, VK также дает вам адрес электронной почты и идентификатор пользователя, но для этого вам нужно специальное разрешение — «электронная почта».
Andrey Banshchikov 10 апр. 2015, в 10:42
Поделиться
Это правильный ответ! Просто сделали id таким образом. Я был бы рад, если бы я мог сначала прочитать это, а затем просмотреть все другие места в Интернете. 🙂
Mr.TK 19 сен. 2016, в 19:08
Да, этот способ не дает электронной почты. Но есть способ получить электронную почту через OAuth (для сайтов vk.com/dev/auth_sites), email будет возвращен в параметрах GET вместе с токеном.
в Coffescript/Javascript вы можете использовать window.open(. )
appId = ‘your app id’ redirectUri = ‘your redirect uri’ url = ‘https://oauth.vk.com/authorize?client_id=’+appId+’redirect_uri=’+redirectUri+’scope=email’ newWin = window.open(url, ‘vk-login’, ‘width=665,height=370’)
И позже у вас есть два способа получить электронную почту
- При перенаправлении обработчика uri (серверный путь)
- переадресовывайте в любое место вашего сайта и каждую секунду проверяйте newWin.location.href a, когда это будет, если (newHref.indexOf(redirectUri)!= -1), то извлеките адрес параметра (путь клиента)
Источник: overcoder.net