2014-01-07 6 views
0

Я хочу создать кнопку «Найти друзей из facebook» на моем сайте. У многих веб-сайтов есть это, и это в основном привлекает ваших друзей из facebook и идентифицирует тех из них, которые уже зарегистрированы на этом веб-сайте, чтобы вы могли добавлять их как друзей или что-то еще.Как узнать, зарегистрированы ли на вашем сайте друзья пользователя facebook?

Я нажал эту кнопку на очень известном веб-сайте, и веб-сайт покажет мне список моих друзей, зарегистрированных на этом веб-сайте, и почти 1/3 моих друзей, где есть.

Я читал API facebooks, создал приложение и, наконец, смог создать кнопку «Найти друзей в Facebook». Но когда я нажимаю на эту кнопку, мой сайт получает от facebook только массив с именем и идентификатором fb каждого моего друга.

Как это полезно для меня? Как я могу узнать, кто из них зарегистрирован на моем веб-сайте, чтобы показать его пользователю, который нажал кнопку? Я думал, что это должно дать мне, например, электронное письмо каждого друга, поэтому я могу сравнить его с моей БД и получить зарегистрированных пользователей, но теперь, когда я думаю об этом снова, это правда, что это невозможно из-за нескольких нарушений конфиденциальности fb ,

Как эти сайты знают, кто из ваших друзей зарегистрирован, нажав кнопку?

спасибо!

ответ

0

Вам необходимо связать идентификатор пользователя Facebook с его учетной записью на вашем сайте (например, в таблице DB user).

Затем у вас есть список всех идентификаторов Facebook ваших друзей. Вы можете запустить запрос в своей БД, чтобы узнать, какие из ваших идентификаторов Facebook ваших зарегистрированных пользователей соответствуют тем из вашего запроса.

В основном пересечение 2 списков идентификаторов FB.

В обоих списках зарегистрированы ваши друзья на сайте.

+0

Связав идентификатор пользователя fb с их учетной записью, вы имеете в виду, что каждый пользователь должен связать свою учетную запись fb со своей учетной записью на моем веб-сайте?Возможно, это единственный способ сделать это, но я не могу поверить, что этот сайт может дать мне 1/3 моих друзей в качестве зарегистрированных пользователей, я не могу поверить, что все они связали свою учетную запись bf .. – ice24

+0

Да, это то, что Я имел в виду. Вы можете знать только, кто из их друзей находится на вашем сайте, если они подключили свою учетную запись Facebook. Или, если вы получаете доступ к своему адресу электронной почты через Facebook (для этого мне нужны дополнительные разрешения). Это ненадежно, хотя многие люди используют другой адрес электронной почты для Facebook, а некоторые скрывают свой адрес электронной почты в Facebook. –

0

Если вы хотите добавить дополнительное разрешение на проверку подлинности FB (publish_actions), то вам не нужно сохранять свой собственный список пользователей в БД для получения этой информации - вы можете запросить scores API для приложение. Просто сделайте вызов Graph на /APP_ID/scores, и он вернет список друзей текущего пользователя, которые используют это приложение. Вашему приложению даже не нужно публиковать какие-либо данные о результатах - в этом случае API просто вернет оценки 0.

Добавление publish_actions означает, что появится диалоговое окно дополнительного разрешения, появляющееся при подключении пользователей к вашему приложение/сайт, если вы еще не запрашиваете это разрешение.

Только друзья, предоставившие вашему приложению/сайту разрешение на публикацию, будут показаны в списке, поэтому, если у вас есть существующий сайт и вы ранее не запрашивали это разрешение, тогда не будут показаны друзья, которые являются старыми пользователями. Полностью понять, что это может не подойти вам, и, возможно, вам следует реализовать решение Fabien Warniez.

пример Javascript:

FB.login(function(response) { 
    FB.api('/145634995501895/scores', function(scoresResponse) { 
    $.each(scoresResponse.data, function(key, value) { 
     console.log(value.user.id + ':' + value.user.name); 
    }); 
    }); 
}, {scope: 'publish_actions'}); 

Заменить 145634995501895 в приведенном выше коде с вашим идентификатором приложения.

+0

Большое спасибо за оба ответа. Я дам ему попробовать. Еще раз спасибо. – ice24

Смежные вопросы