我有一个应用程序,当用户输入他们的Facebook粉丝页面网址时,我提取页面ID并将其存储到数据库中,以便稍后在facebook graph api中使用。
我添加了以下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>
因此,如果我的用户输入的Facebook网址如:https://www.facebook.com/audi
,我会得到输出audi
,这很好。
如果用户输入facebook网址为:https://www.facebook.com/pages/abc-def/1234568
,我会收到输出1234568
,这很好。
但对于像以下网址:
https://www.facebook.com/abc-def-12345678/
(应返回12345678)
或
https://www.facebook.com/audi/timeline?ref=page_internal
(应该返回奥迪)
我无法获取页面ID,有没有更好的方法可以从任何Facebook粉丝页面网址中提取页面ID并在facebook图形api中使用它,如:https://graph.facebook.com/page_id
动态?
答案 0 :(得分:3)
我想出了一个更好的方法从任何Facebook页面网址获取页面ID,我不确定是否有更好的选择来做到这一点,但这里是我使用的代码:
$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
我尝试使用各种facebook网址并且每次都有效,希望这有助于将来的某些人。