Javascript. Узнаем ID клиента в VK и FB
15 июня 2014 JavaScript 30216 просмотров
Наверное, многие замечали (особенно те, у кого не установлена блокировка рекламы в браузере), как на сторонних сайтах нам показывают стилизованные под ВКонтакте сообщения, где указывается ваше имя из VK и ваше фото. Да, порой это раздражает, но давайте посмотрим на это не как пользователи, а как разработчики. Ведь полезная функция, не так ли? Конечно, если использовать это в разумных целях. Можно упростить регистрацию, сделать социальную интеграцию и еще много всего, что уже является особенностью вашего проекта.

На первый взгляд реализация этого процесса может показаться какой-то хакерской и нечестной. Попахивает скрытыми iframe'ами. Но, как оказалось, и для VK, и для Facebook это делается довольно просто и при помощи открытого клиентского API.

Начнем с функции для VK. Если клиент залогинен во ВКонтатке, то мы сможем кое-что узнать о нем, узнать его имя, его id и т.д. Подключим VK API и сделаем то, что запланировали:
<script src="http://vk.com/js/api/openapi.js"></script>
<script>
function checkVk() {
    VK.init({
        apiId: 'APP ID'
    });
    function authInfo(response) {
        if (response.session) {
            console.log(response.session.mid);
        }
    }
    VK.Auth.getLoginStatus(authInfo);
}
checkVk();
</script>
Стоит отметить, что для VK и для FB вам нужно создать приложения в этих сервисах, где вам выдадут соответствующие ключи (APP ID).

Что-то похожее для Facebook:
<script src="https://connect.facebook.net/en_US/all.js"></script>
<script>
function checkFb() {
    FB.init({
        appId:  'APP ID',
        status: true,
        cookie: true
    });
    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            console.log(response.authResponse.userID);
        }
    });
}
checkFb();
</script>
В Tuffle мы сейчас используем данные функции для одной интересной фичи, которая в скором времени будет доступна всем пользователям.

Эту статья можно дополнить примерами для других социальных сетей. Если будет желание - пишите в комментарии. С любовью, Саша П.

UPD: На момент написания статьи это работало. Сейчас ID вернется только в случае, если пользователь залогинен в приложении VK или FB.