この質問 を見てきましたが、私が望むものは異なります。
一般的なURLからではなくFacebook IDを取得したい(したがって、「いいね」ボタンがあるかどうかは条件付き)。 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が必要なものをサポートしていることを誰かが知っているのではないかと思っています。
あなたが説明する最も簡単な解決策は、lastIndexOf( "/")(ほとんどの言語に同等のものがある)を使用して、URLからid/nameを取得することですget "https://graph.facebook.com/" + id。
このURLが返すデータには、ID(つまり、6708787004)とユーザー名(つまり、spark)があるため、使用する識別子(lastIndexOfを使用してURLから抽出したもの)に関係なく、同じ結果が得られます。
このコード:
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メソッドを実装する必要があります)。
また、質問の2番目のURLフォームは、少なくとも私のテストからではなく、ページの有効なURLではありません:
期限切れのリンクをクリックしたか、アドレスを誤って入力した可能性があります。一部のWebアドレスでは大文字と小文字が区別されます。
質問への回答は上に掲載されていますが、以下に示す方法はうまく機能します。facebookページのURLで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サイトツール
以下のAPIを使用してページIDを取得できます
https://graph.facebook.com/v2.7/smhackapp?fields=id,name,fan_count,picture,is_verified&access_token=access_token&format = json
<?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']);
?>
Thats a PHP IDを取得する方法の例。
この回答は2019年に更新およびチェックされます。リンクから何も抽出する必要がないため、非常に簡単です。例えば:
https://graph.facebook.com/?id=link&access_token=xxxxxxxx
応答:{「名前」:「Vaireoショップ」、「id」:「2138395226250622」}
nodeJSの完全な回答:
async function getBusinessFromFBByPageURL(pageURL: string) {
const accessToken = process.env.fb_app_access_token;
const graphUrl = `https://graph.facebook.com/?id=${pageURL}? access_token=${accessToken}`;
const fbGraphResponse = await Axios.get(graphUrl);
この回答では、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];
}
リクエストとreのモジュールを使用できます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