2015-10-26 2 views
1

У меня есть приложение, в котором, когда пользователь вводит URL-адрес страницы фан-страницы пользователя, я извлекаю идентификатор страницы и сохраняю его в базе данных, которая будет использоваться позже в графике facebook api.Извлечение идентификатора страницы с страницы facebook url

Я добавил следующие JS для извлечения ID страницы:

<script> 
var fburl= "https://www.facebook.com/audi"; 
if(fburl.indexOf("?") != -1) { 
     var fburl_new=fburl.split("/"); 
     var fburl_newer=(fburl_new[fburl_new.length-1]) 
     var fburl_newer =fburl_newer.split("?"); 
     var fbnameonly=(fburl_newer[fburl_newer.length-2]); 
    } else { 
     var fbnameonly = fburl.substring(fburl.lastIndexOf('/') + 1); 
    } 
if(fbnameonly==undefined) { 
     console.log(fburl); 
}else { 
     console.log(fbnameonly); 
} 
</script> 

Итак, если я пользователь вводит URL facebook как: https://www.facebook.com/audi, я получаю выход audi, который отлично.

Если пользователь вводит URL-адрес facebook как: https://www.facebook.com/pages/abc-def/1234568, я получаю вывод 1234568, который в порядке.

но URLs как:

https://www.facebook.com/abc-def-12345678/ (должен возвращать 12345678)

или

https://www.facebook.com/audi/timeline?ref=page_internal (должен возвращать ауди)

Я не могу получить идентификатор страницы, есть ли лучший способ, с помощью которого я могу извлечь идентификатор страницы из любого URL-страницы страницы поклонника facebook и использовать ее в графике facebook api, например: https://graph.facebook.com/page_id динамически?

+0

Regex ['\ .com \/(?: Pages \ /)? ([\ W-] +)'] (https://regex101.com/r/fH1oF4/1) – Tushar

+0

@Tushar, t работает для любых URL-адресов, например 'https: // www.facebook.com/Lo-stile-di-Anna-1521824524722026' здесь' 1521824524722026' - это идентификатор страницы, который я могу использовать с графиком api – Criesto

ответ

2

я понял, лучший способ получить идентификатор страницы из любой facebook ссылки на странице, я не уверен, если есть еще лучший вариант, чтобы сделать это, но вот код, что я использовал:

$fbUrl = "https://www.facebook.com/Lo-stile-di-Anna-1521824524722026"; 
$graphUrl = "https://graph.facebook.com/?id=".$fbUrl."&access_token=xxxxx&fields=id"; 
$output = file_get_contents($graphUrl); 
$output = json_decode($output, TRUE); 
echo $output["id"]; // returns 1521824524722026 

Я пробовал это с различными URL-адресами facebook, и он работал каждый раз, надеюсь, что это поможет кому-то в будущем.