Найти пользователя Facebook (URL на страницу профиля) по известному адресу электронной почты - PullRequest
30 голосов
/ 08 марта 2011

У меня есть адрес электронной почты, и я хочу узнать, есть ли пользователь Facebook, связанный с этим адресом.Если есть, то я хочу получить URL-адрес этой страницы профиля пользователя и сохранить его где-нибудь.У меня нет есть приложение для Facebook, но, при необходимости, я использовал бы существующие учетные данные для входа в Facebook и выполнения задачи.

Я думал, что это будет легкой задачей, нокак-то нет.Я прочитал документацию Graph API и там вы найдете инструкции по поиску открытых данных.Он говорит, что формат:
https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE

Но попробуйте это с адресом электронной почты в параметре q и user в типе параметр без дополнительной информации приводит к OAuthException , говорящему «Требуется токен доступа для запроса этого ресурса.» Однако, если вы нажмете на примеры поисковых ссылок, Facebook сгенерирует URL супомянутый токен доступа, связанный с текущим вошедшим пользователем.Выполнение поиска с этим токеном дает ожидаемые результаты.Но я не могу понять, как получить этот токен доступа к сеансу пользователя после входа в систему. Каждый раз, когда я ищу, как получить токен доступа, я нахожу информацию только о приложениях Facebook и получении разрешений для доступа к основным или конкретным данным.Это, как я уже говорил, не то, что я ищу, так как у меня нет и не нужно приложение на Facebook.

Поскольку Facebook дает мне нужный токен в ссылках примера, я думал, что это не должноЭто не проблема, чтобы получить это тоже.Или они только из-за домашнего преимущества?Кроме того, Поставщик Outlook Social Connector для Facebook может получать данные Facebook только через адрес электронной почты (и предоставленные данные учетной записи).Поэтому я подумал, что если Microsoft сможет делать такие вещи, у меня также будет возможность делать подобные вещи.

И последнее, но не менее важное, это разочаровывает, поскольку я теоретически и практически уже могу найти URL профиля пользователя.просто путем поиска адреса электронной почты.Мне даже не нужно заходить на Facebook.И это не официальный способ API.
Если я выполняю веб-запрос к http://www.facebook.com/search.php?init=s:email&q=example@domain.com&type=users, я получаю ожидаемый результат поиска.Проблема в том, что мне нужно проанализировать HTML-код и извлечь URL (это нормально), и что страница результатов может быть изменена и может легко сломать мой метод для извлечения URL (проблематично).

ТакУ кого-нибудь есть идеи, как лучше всего выполнить поставленную задачу?

Ответы [ 11 ]

0 голосов
/ 09 марта 2011

ПРЕДУПРЕЖДЕНИЕ: старый и устаревший ответ. Не используйте


Я думаю, что вам придется искать последнее решение, просматривая страницу результатов поиска, потому что вы можете выполнять поиск по электронной почте с помощью API только среди тех пользователей, которые авторизовали ваше приложение (и вам понадобится, потому что маркер, который FB предоставляет в примерах, имеет срок действия, и вам необходимы расширенные разрешения для доступа к электронной почте пользователя).

Единственный подход, который я не пробовал, но я думаю, что он ограничен таким же образом, это FQL. Что-то вроде

SELECT * FROM user WHERE email 'your@email.com'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...