Facebook Graph API - 从Facebook获取ID页面URL
我看过this question但我想要的是不同的。Facebook Graph API - 从Facebook获取ID页面URL
我想从一般的URL中获取Facebook ID(因此,如果它具有Like按钮,则有条件)。我想使用Graph API获得Facebook页面上的Facebook ID。
注意,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是支持我想要的。
在我看来,你所描述的最简单的解决方案就是从你使用的网址获得id/name lastIndexOf(“/”)(大多数语言都有相同的),然后得到“https://graph.facebook.com/”+ id。
此网址返回的数据包含id(即:6708787004)和用户名(即:southpark),因此无论您使用哪个标识符(使用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,至少不是从我的测试中,我得到:
You may have clicked an expired link or mistyped the address. Some web addresses are case sensitive.
可以请你解释一下这个对我来说也是有用的 我明白你的意思,但我没有得到使用lastindexof()的id或名字 可以请给出完整的代码 – 2012-04-14 07:32:11
当然,编辑我的回答 – 2012-04-14 10:00:38
谢谢亲爱的 – 2012-04-14 11:37:32
<?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']);
?>
这是一个如何获得ID的PHP示例。
你怎么知道你总是会得到具有Facebook页面ID的网址。可能有页面名称而不是页面ID。在这种情况下你会做什么? – 2015-12-05 08:13:18
这个答案考虑到一个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];
}
的问题的答案张贴,但低于所示的方法工作得很好,我们没有对Facebook的网页网址进行regex
我用这种方法得到的答案
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 Developers site tools
您可以通过使用下面的API获取页面ID
https://graph.facebook.com/v2.7/smhackapp?fields=id,name,fan_count,picture,is_verified&access_token=的access_token &格式= JSON
不工作了。 – Hideya 2016-11-30 22:31:43
工作得很好。不要忘记用有效的标记替换'access_token'。 – ACIDSTEALTH 2017-01-31 20:42:09
值得注意的是,尽管Facebook API指定页面为l通过{page-id}关闭,并且ID是一个“数字字符串”,文本名似乎同样适用。 – Kylotan 2015-06-23 19:11:38