it-swarm.com.ru

API Graph Facebook - получить идентификатор из URL страницы Facebook

Я видел этот вопрос , но я хочу другого.

Я хочу получить идентификатор Facebook не по общему URL (и, следовательно, условно, есть ли у него кнопка «Нравится» или нет). Я хочу получить идентификатор Facebook, указанный на странице Facebook, используя Graph API.

Обратите внимание, что страницы Facebook могут иметь несколько форматов, таких как:

http://www.facebook.com/my_page_name
http://www.facebook.com/pages/my_page_name
http://www.facebook.com/my_page_ID

Я знаю, что мог бы сделать некоторое регулярное выражение, чтобы получить имя my_page или my_page_ID, но мне интересно, если кто-нибудь знает, поддерживает ли GraphAPI то, что я хочу.

36
Hommer Smith

Мне кажется, что самое простое решение для того, что вы описываете, это просто получить идентификатор/имя из URL, который вы используете, используя lastIndexOf ("/") (для которого большинство языков имеют эквивалент), а затем получить "https://graph.facebook.com/" + id .

Данные, которые возвращает этот URL, имеют идентификатор (то есть 6708787004) и имя пользователя (то есть: южный парк), поэтому независимо от того, какой идентификатор вы используете (то, что вы извлекаете из URL, используя lastIndexOf), вы должны получить один и тот же результат.


Правка

Этот код:

identifier = url.substring(url.lastIndexOf("/"))
graphUrl = "https://graph.facebook.com/" + identifier
urlJsonData = getGraphData(graphUrl)

Должно работать одинаково (то есть результат с одинаковыми данными) для обоих:

url = http://www.facebook.com/southpark

А также

url = http://www.facebook.com/6708787004

(вам, очевидно, потребуется реализовать метод getGraphData ).

Кроме того, вторая форма URL в вопросе не является допустимым URL для страниц, по крайней мере, не из моих тестов, я получаю:

Возможно, вы щелкнули ссылку с истекшим сроком действия или ошибочно набрали адрес. Некоторый веб адреса чувствительны к регистру.

28
Nitzan Tomer

Ответ на вопрос размещен выше, но метод, показанный ниже, работает нормально, нам не нужно выполнять regex на URL-адресах страницы Facebook.

Я получил ответ этим методом

FB.api('/any_fb_page_url', function(response){
  console.log(response);
}); 

any_fb_page_url может быть любого из следующих типов

https://www.facebook.com/my_page_name
https://www.facebook.com/pages/my_page_name
https://www.facebook.com/my_page_ID

Это также указано в вопросе выше

Этот код протестирован на консоли JS, доступной на инструменты сайта разработчиков Facebook

10
Suraj Palwe

Вы можете получить идентификатор страницы с помощью API ниже 

https://graph.facebook.com/v2.7/smhackapp?fields=id,name,fan_count,picture,is_verified&access_token=access_token & format = json

Контрольное изображение

6
Mani
<?php

function getFacebookId($url) {

    $id =  substr(strrchr($url,'/'),1); 

    $json = file_get_contents('http://graph.facebook.com/'.$id);

    $json = json_decode($json);

    return $json->id;

}


echo getFacebookId($_GET['url']);


?>

Вот PHP пример того, как получить идентификатор.

5
Alon Carmel

В этом ответе учитывается, что URL-адрес может заканчиваться косой чертой, что, похоже, теперь есть на страницах событий Facebook в их URL-адресах.

function getId(url) {
  var path = new URL(url).pathname;
  var parts = path.split('/');

  parts = parts.filter(function(part) {
    return part.length !== 0;
  });

  return parts[parts.length - 1];
}
0
Jon Koops

Вы можете использовать Запросы и повторно Модули в python

Код: 

import requests,re

profile_url = "https://www.facebook.com/alanwalker97"

idre = re.complie('"entity_id":"([0-9]+)"')

con = requests.get(profile_url).content

id = idre.findall(con)

print("\n[*] ID: "+id[0])

Результат:

[*] ID: 100001013078780

0
J0KER11