FacebookのGraphAPIを使用して、ユーザー名xyz(ユーザーが私のサイトを認証したと仮定)を指定して、ユーザーが管理するすべてのFacebookページのリストを取得するにはどうすればよいですか?
9 に答える
オブジェクトのaccounts
プロパティは次のように述べています。user
現在のユーザーが所有するFacebookページ。manage_pages権限が付与されている場合、この接続により、ページに代わってGraphAPIを照会するために使用できるaccess_tokensも生成されます。
アクセス トークンを取得すると、ユーザーが管理するすべての facebook ページのリストのすべての詳細を取得できます。
https://graph.facebook.com/[FACEBOOKUSERID]?metadata=1&access_token=
出力は次のようになります
{
"name": "Facebook Developer Garage Austin - SXSW Edition",
"metadata": {
"connections": {
"feed": "http://graph.facebook.com/331218348435/feed",
"picture": "https://graph.facebook.com/331218348435/picture",
"invited": "https://graph.facebook.com/331218348435/invited",
"attending": "https://graph.facebook.com/331218348435/attending",
"maybe": "https://graph.facebook.com/331218348435/maybe",
"noreply": "https://graph.facebook.com/331218348435/noreply",
"declined": "https://graph.facebook.com/331218348435/declined"
}
}
}
fql クエリを使用してください。これは、ユーザーが管理者であるページを取得する最良の方法です。また、名前を制限することもできます。つまり、名前が空のページ ページの詳細も表示するサンプル fql クエリ。
SELECT page_id,page_url,name,pic_square FROM page WHERE page_id IN (SELECT page_id FROM page_admin WHERE uid = " + **UserId** + ") and name!=''
UserId -- 管理者の ID
注 : このメソッドはグラフ API のバージョン 2.1 以降では機能しません。これは、fql がそのバージョン以降で非推奨になったためです。
答えが見つかりました。FQL を使用して、適切な access_token を渡す必要があります。
これが私が使用するものです。それは完璧に動作します
$pages = $facebook->api(array('method' => 'fql.query','query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.''));
foreach($pages as $k=>$v) {
echo 'page id#:'.$v['page_id'].'<br/>';
}
これはもちろん、fb ユーザー用にセッションを作成した後です。これ$uid
は、管理ページのリストを返す特定の facebook ユーザーのプロファイル id# になります。
@rmorrison - ただし、これはグラフ API ではありません。新しい「いいね」の追加により、次の URL を使用できます: h ttps://graph.facebook.com/me/likes?access_token=blah! または h ttps://graph.facebook.com/USER_ID/likes?access_token=blah!
シンプルな Facebook Graph API Hit からページのリストを取得できます。
https://graph.facebook.com/{user-id}/accounts?access_token={access-token}
ユーザーが作成したページのリストが表示されます。
Fql は、管理者であるユーザーのページを取得するための最良の方法です。ユーザーの好きな人は、ユーザーが好きなすべてのページを提供します。