Facebook друзей по электронной почте FQL - PullRequest
1 голос
/ 25 февраля 2011

У меня есть этот FQL:

$femail = $facebook->api(array( 
'method' => 'fql.query', 
'locale' => 'en_US',
'query' => 
'SELECT email 
FROM user 
WHERE uid 
IN (SELECT uid2 
    FROM friend 
    WHERE uid1='.$user_id.') 
AND uid = '.$friend_id.' 
ORDER BY name ASC', ));

Вот результат print_r:

Array
(
    [0] => Array
        (
            [email] => 
        )

)

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

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011

В общем, вы НЕ МОЖЕТЕ получить адрес электронной почты своих друзей ( источник ):

User permission     Friends permission
email             not available

НО , нопоскольку ваш друг авторизовал ваше приложение, вы можете попробовать в консоли FQL следующее:

SELECT email FROM user WHERE uid=FRIEND_ID

Я подозреваю, что проблема может заключаться в том, что вам нужен " друг "access_token, чтобы фактически получить письмо, потому что я полагаю, что вы вошли в систему как ваш пользователь при попытке запроса.Поэтому вам нужно предоставить разрешение offline_access и затем использовать его с запросом.

Но прежде чем делать вышесказанное, я бы попробовал это с приложением access_token.

PS: подзапрос не нужен, если вы знаете идентификатор друга.

0 голосов
/ 25 февраля 2011

Вы не можете получить адреса электронной почты друзей. Каждая учетная запись должна подтвердить свой адрес электронной почты с приложением. Друзья не могут приглашать других друзей, и это хорошо.

Также, как упомянул @ Barkermn01, удалите AND uid = '. $ Friend_id.'

...