Преобразование имен Facebook в идентификационные номера - PullRequest
4 голосов
/ 05 января 2012

Я заметил некоторые различия в профилях Facebook:

Некоторые из них имеют следующий формат строки на панели навигации браузера:

http://facebook.com/john.smith

и другиевыглядят так: http://www.facebook.com/profile.php?id=100455*

Может кто-нибудь объяснить, почему есть разница?

И еще важнее, как я могу преобразовать эти john.smith как имена в idцифры?

Ответы [ 3 ]

9 голосов
/ 05 января 2012

Это URL-адреса псевдонимов, которые Facebook предлагает своим пользователям (и страницам) - это, в основном, пустая вещь, и идентификатор, и URL-адрес псевдонима будут работать одинаково.

Вы можете перевести псевдоним (или имя пользователя), выполнив поиск этого пользователя с помощью API Graph Facebook. Например, просто сделайте запрос GET на https://graph.facebook.com/John - это даст следующий ответ:

{
  "id": "779695190",
  "name": "John Chan",
  "first_name": "John",
  "last_name": "Chan",
  "link": "http://www.facebook.com/John",
  "username": "John",
  "gender": "male",
  "locale": "en_US",
  "updated_time": "2011-12-27T05:01:06+0000",
  "type": "user"
}

response.id - это то, что вас интересует.

Проверьте это: http://developers.facebook.com/tools/explorer?method=GET&path=john

1 голос
/ 05 января 2012

Вы на самом деле не хотите преобразовывать идентификаторы в имена, но получаете идентификатор по username, что возможно путем отправки запроса в Graph API:

GET https:/graph.facebook.com/john.smith?fields=id
0 голосов
/ 21 апреля 2012

Вот решение на основе JQuery, где обратный вызов является произвольной функцией:

$.get("https://graph.facebook.com/" + name + "?fields=id", function(response){
    if(response.error){
        callback(false)
    }else{
        callback(response.id);
    }
});
...