Как получить адрес электронной почты пользователя в Facebook (Facebook Connect или Graph API)? - PullRequest
3 голосов
/ 01 ноября 2010

У меня раньше было приложение FBML в Facebook, а теперь я перехожу на приложение IFrame в FB, используя API-интерфейс graph.(под тем же именем, под той же игровой учетной записью. Просто переключитесь с FBML на iFrame).

У меня был список людей с расширенным разрешением, принятых для электронной почты.Поскольку я перехожу на IFrame, я могу получить их электронную почту ... по тому, что говорится в API.

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

1) Когда это было в FBML, я нене имеют их электронную почту.Только с их разрешения по электронной почте.(это то, что я был ограничен)

2) Я могу получить электронную почту пользователя, когда он входит в систему и посещает мое приложение

3) Однако я не могу получить электронную почту пользователя, когда он не посещаетмое заявление.Потому что некоторые из них могут не вернуться, но я хочу рассказать им об обновлении.

4) Я пытался запустить приложение, используя адрес электронной почты, который я зарегистрировал для приложения (т. Е. Учетную запись разработчика), но тем не менее я не могу получить их электронные письма.

Кажется, что приложениеможет получить только текущий логин пользователя.Я не могу получить их электронную почту, даже я администратор.

Есть ли способ, которым я могу это сделать?

Например: если пользователь 12345678 и заходит в мое приложение, я могу запустить это, может получить его электронную почту:

 $fql    =   "select  email from user where uid=12345678";

Очевидно, что этот пользователь не может запустить и получить информацию для пользователя 23456.

e.g. $fql    =   "select  email from user where uid=23456";   <--- Fail

Итак, вот проблема.У меня есть тысячи людей, которые ранее зарегистрировались и приняли расширенное разрешение. Как я могу получить их электронные письма сейчас?Я не могу запустить это ...

$fql    =   "select  email from user where uid=1000001";
$fql    =   "select  email from user where uid=1000002";
$fql    =   "select  email from user where uid=1000003";  
// assum 1000001 ... 1000003 are those users. 

Я попытался войти в Facebook, используя мою учетную запись dev, и сделать это, но все равно это не будет работать.Цените, если у кого-то есть решение.спасибо.

Ответы [ 3 ]

1 голос
/ 16 февраля 2012
<code>    You can get  user email address and details in Facebook (Facebook Connect or Graph API)
<?php

require '../src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '344617158898614',
  'secret' => '6dc8ac871858b34798bc2488200e503d',
));

// See if there is a user from a cookie
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
      echo "FacebookApiException";
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'
';$ user = null;}}?>Войти через Facebook window.fbAsyncInit = function () {FB.init ({appId: 'getAppID ()?> ', cookie: true, xfbml: true, oauth: true});FB.Event.subscribe ('auth.login', function (response) {window.location.reload ();});FB.Event.subscribe ('auth.logout', function (response) {window.location.reload ();});};(function () {var e = document.createElement ('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; документ.getElementById ('fb-root'). appendChild (e);} ());
1 голос
/ 01 ноября 2010

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

0 голосов
/ 21 января 2014

Во-первых, убедитесь, что вы включаете электронную почту в область прав доступа, например так:

https://www.facebook.com/dialog/oauth?client_id=595603433841467&redirect_uri=http://127.0.0.1:8000/faceb_login/&scope=email

Затем получите токен oauth, как описано в другом месте.Затем, чтобы фактически получить электронную почту человека, вы можете сделать следующий запрос:

https://graph.facebook.com/1162321772?fields=email&access_token=XXXXXXXXXXXXXXXXXXXXXX...

Документация по графику API здесь:

https://developers.facebook.com/docs/graph-api/using-graph-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...