特定のページを作成したユーザーの Facebook ユーザー ID を取得しました。ここで、Web サイトにボックスのように表示するページ ID を取得する必要があります。
さまざまなユーザーが独自の Facebook ページを持っています。ただし、Facebook ユーザー ID を取得する方法は知っています。
特定のページを作成したユーザーの Facebook ユーザー ID を取得しました。ここで、Web サイトにボックスのように表示するページ ID を取得する必要があります。
さまざまなユーザーが独自の Facebook ページを持っています。ただし、Facebook ユーザー ID を取得する方法は知っています。
wwwをページURLのグラフに置き換えることができます。たとえば、コカコーラページのID http://graph.facebook.com/cocacola(最初の値)。
ファンページへの URL には ID が含まれます。たとえば、スタック オーバーフローのファン ページ
http://www.facebook.com/pages/Stack-Overflow/105665906133609
IDは105665906133609です
一部のページにはエイリアスがあり、ID としても使用できます。例えば、海兵隊のファンページは
http://www.facebook.com/marinecorps
だからIDはmarinecorps
または、ドキュメント ページのジェネレーターを使用することもできます。
ページ ID は署名付きリクエストに含まれています。これは、Facebook のページ更新に関する byron の投稿の更新版です。
$facebook = new Facebook();
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request['page']['id'];
echo 'page id is ' . $page_id . ' AAAAAAAAAAWWWWWWW YYYYYYEEEEEEEEAAAAAAAAAAAA!';
これは新しいphp sdkを使用して機能します
$page_id = null;
$facebook = new Facebook();
try {
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request['profile_id'];
} catch (FacebookApiException $e) {
error_log($e);
}
タブにそのユーザーが作成したコンテンツを表示する必要があるため、実際に探しているのはページ作成者のユーザー ID であるため、これが機能することに腹を立てていることに注意してください。これは以前は可能でしたが、今は不可能だと思います。kasun、どのようにしてページ作成者の ID を取得していますか?
FacebookSDKに追加できる関数のリストは次のとおりです。グラフAPIとRESTAPIの両方で機能します。
/*
Custom functions to get fan page related information
*/
function getSignedData()
{
if(isset($this->signedData) && !empty($this->signedData))
return $this->signedData;
if(!isset($_REQUEST["signed_request"]))
return false;
$signed_request = $_REQUEST["signed_request"];
if(empty($signed_request))
return false;
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if(empty($data))
return false;
$this->signedData = $data;
return $data;
}
/*
Return fan page id, Only return fanpage id for 1st (landing) page of application.
*/
function getFanPageId()
{
if(!$data = $this->getSignedData())
{
return false;
}
if(isset($data["page"]["id"]))
return $data["page"]["id"];
return false;
}
/*
Only returns userid, if user has authenticated application
*/
function getFanPageUserId()
{
if(!$data = $this->getSignedData())
{
return false;
}
if(isset($data["user_id"]))
{
return $data["user_id"];
}
return false;
}
/*
Check if visiting user is fan page admin
*/
function checkFanPageAdmin()
{
if(!$data = $this->getSignedData())
return false;
if(isset($data["page"]["admin"]) && $data["page"]["admin"] == 1)
return true;
return false;
}
あなたがユーザーであり、あなたが管理者であるページのページIDが必要であると想定しています。
IDを取得するのはかなり簡単です。
まず、ユーザーIDに関連付けられているすべてのページのリストを取得する必要があります。
$ fanpages = $ facebook-> api('me / account?access_token='。$accessToken);
次に、次のようなループを実行します。
foreach ($fanpages['data'] as $fanpage)
{
echo "<br />Fan Page Name: ".$fanpage['name'] . " ID: ".$fanpage['id'];
}
これにより、IDに関連付けられているすべてのページが一覧表示されます。
$ fanpage配列の要素の完全なリストについては、次を参照してください。
$pages = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.''
));
$ uidはFBユーザーのプロファイルID#です!PHPSDKを使用したFqlクエリ
Facebookにログインした後、http: //www.facebook.com/insights/に移動します
右上の緑色のボタン(「ドメインのインサイト」)を押して、ページのドロップダウン値を選択します。出来上がり、page_idが表示されます。
(私はこれをFacebookフォーラムで見ました)
グラフは現在、すべてではないにしてもほとんどのリクエストに対してアクセストークンを必要とするため、これらの回答はもはや機能していないようです。
FacebookページのURLのみを入力として必要とする実用的なソリューションを次に示します。
これが行うことは、Facebook ページを HTML として受け取り、(正規表現を介して)entity_id
数値を持つ JSON を検索することです。この値はページの ID です。ページのコンテンツが変更される可能性があるため、このソリューションが永久に機能することが保証されているわけではありません
/**
* @param string $facebookUrl
* @return null|string
*/
function get_facebook_id($facebookUrl)
{
$facebookId = null;
$fbResponse = @file_get_contents($facebookUrl);
if($fbResponse)
{
$matches = array();
if (preg_match('/"entity_id":"([0-9])+"/', $fbResponse, $matches))
{
$jsonObj = json_decode("{" . $matches[0] . "}");
if($jsonObj)
{
$facebookId = $jsonObj['entity_id'];
}
}
}
return $facebookId;
}