从Facebook页面网址中提取页面ID

时间:2015-10-26 06:04:18

标签: javascript php facebook facebook-graph-api

我有一个应用程序,当用户输入他们的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动态?

1 个答案:

答案 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网址并且每次都有效,希望这有助于将来的某些人。