39

私はこの質問を見ましたが、私が欲しいものは異なります。

一般的なURLからではなくFacebookIDを取得したい(したがって、「いいね」ボタンがあるかどうかは条件付き)。GraphAPIを使用してFacebookページからFacebookIDを取得したい。

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が必要なものをサポートしているかどうかを誰かが知っているかどうか疑問に思っています。

4

9 に答える 9

30

あなたが説明したことに対する最も簡単な解決策は、lastIndexOf("/") (ほとんどの言語で同等のものがあります) を使用して、URL から id/name を取得し、 "https://graphを取得することです。 .facebook.com/" + id .

この URL が返すデータには ID (つまり: 6708787004) とユーザー名 (つまり: southpark) が含まれているため、使用する識別子 (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 アドレスでは、大文字と小文字が区別されます。

于 2012-04-13T23:02:19.580 に答える
4
<?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 の例です。

于 2012-06-25T16:04:51.783 に答える
-1

おそらく、 https ://developers.facebook.com/docs/reference/api/#searching ドキュメントに目を通してみることができます: いくつかのタイプを検索し、探しているものが見つかったらそこから移動します。

于 2012-04-13T23:02:22.313 に答える