サンプルなど掲載されているサイト等あれば是非お教えください。
まずはFacebookアプリを登録します。
・Facebookアプリ(ページ)の登録手順(2012年1月20日版・その1)
http://www.h-fj.com/blog/archives/2012/01/20-105000.php
・Facebookアプリ(ページ)の登録手順(2012年1月20日版・その2)
http://www.h-fj.com/blog/archives/2012/01/21-152934.php
※上記で「ウェブサイト」となっている項目は、現在は「Website with Facebook Login」となっています。
Facebook PHP SDKを準備します。
・Facebook PHP SDK (v.3.1.1)
https://github.com/facebook/facebook-php-sdk/downloads
次のコードを記述したPHPファイルと上記Facebook PHP SDKをsrcディレクトリごと、アプリ登録時にFacebook上のアプリのキャンバスURLで設定したURLにアップします。
<?php require_once('src/facebook.php'); header("Content-type: text/html; charset=utf-8"); $facebook = new Facebook(array( 'appId' => "あなたのApp ID", 'secret' => "あなたのApp Secret", )); $user = $facebook->getUser(); if(!$user) { $url = $facebook->getLoginUrl(array( 'canvas' => 1, 'fbconnect' => 0, // status_updateステータス更新 // publish_streamフィードへの書き込み許可 // manage_pages管理しているファンページへのアクセス許可 // offline_accessオフラインでのアクセス許可 'req_perms' => 'status_update,publish_stream,manage_pages,offline_access' )); echo " <a href='" . $url . "'>Login</a>"; exit(); } else { try { $logoutUrl = $facebook->getLogoutUrl(); $me = $facebook->api('/me'); // 自分の情報を取得 $pagesData = $facebook->api('/me/accounts'); echo "<a href='". $logoutUrl ."'>Logout</a>"; echo "<pre>"; print_r($me); print_r($pagesData); print_r($_SESSION); echo "</pre>"; // ページの名前とIDを表示 foreach($pagesData['data'] as $val) { if($val['category'] != 'Application') { echo "<br>\n【Page Name】" . $page_name = $val['name']; echo " 【ID】". $page_id = $val['id']; } } } catch (FacebookApiException $e) { echo "FacebookApiException: " . $e->getMessage(); $loginUrl = $facebook->getLoginUrl(); echo " <a href='" . $loginUrl . "'>Login</a>"; exit(); } } ?>
※$pagesData['data']に管理しているページと登録したアプリケーションの情報が入っています。
http://d.hatena.ne.jp/language_and_engineering/20111006/p1
http://blog.hebita164.jp/entry/20101024/1287933193
※ページの名称とIDのみの表示に関してコードに追加しました。
まず前提として、facebookPHP-SDKを取得する必要があります。それは以下を参考にしてください。
facebookのPHP-SDKで、ウォールに書き込んだり、フレンドリストを取得したり。 | motooLogue
そののちに、
友達一覧であれば:
facebook apiを使って友達一覧を取得する - phpnoviceの日記
いいね数であれば:
[PHP]FacebookのAPIを使って、特定のURLのいいね数を取得する « Codaholic
を参考にしてfacebook側から、データを取得してください
失礼しました。質問の書き方が誤解を招くような書き方だったかと思います。
自分がadministratorとして管理する"Facebookページ"自体の名称とそのIDを取得したいのです。
まずはFacebookアプリを登録します。
・Facebookアプリ(ページ)の登録手順(2012年1月20日版・その1)
http://www.h-fj.com/blog/archives/2012/01/20-105000.php
・Facebookアプリ(ページ)の登録手順(2012年1月20日版・その2)
http://www.h-fj.com/blog/archives/2012/01/21-152934.php
※上記で「ウェブサイト」となっている項目は、現在は「Website with Facebook Login」となっています。
Facebook PHP SDKを準備します。
・Facebook PHP SDK (v.3.1.1)
https://github.com/facebook/facebook-php-sdk/downloads
次のコードを記述したPHPファイルと上記Facebook PHP SDKをsrcディレクトリごと、アプリ登録時にFacebook上のアプリのキャンバスURLで設定したURLにアップします。
<?php require_once('src/facebook.php'); header("Content-type: text/html; charset=utf-8"); $facebook = new Facebook(array( 'appId' => "あなたのApp ID", 'secret' => "あなたのApp Secret", )); $user = $facebook->getUser(); if(!$user) { $url = $facebook->getLoginUrl(array( 'canvas' => 1, 'fbconnect' => 0, // status_updateステータス更新 // publish_streamフィードへの書き込み許可 // manage_pages管理しているファンページへのアクセス許可 // offline_accessオフラインでのアクセス許可 'req_perms' => 'status_update,publish_stream,manage_pages,offline_access' )); echo " <a href='" . $url . "'>Login</a>"; exit(); } else { try { $logoutUrl = $facebook->getLogoutUrl(); $me = $facebook->api('/me'); // 自分の情報を取得 $pagesData = $facebook->api('/me/accounts'); echo "<a href='". $logoutUrl ."'>Logout</a>"; echo "<pre>"; print_r($me); print_r($pagesData); print_r($_SESSION); echo "</pre>"; // ページの名前とIDを表示 foreach($pagesData['data'] as $val) { if($val['category'] != 'Application') { echo "<br>\n【Page Name】" . $page_name = $val['name']; echo " 【ID】". $page_id = $val['id']; } } } catch (FacebookApiException $e) { echo "FacebookApiException: " . $e->getMessage(); $loginUrl = $facebook->getLoginUrl(); echo " <a href='" . $loginUrl . "'>Login</a>"; exit(); } } ?>
※$pagesData['data']に管理しているページと登録したアプリケーションの情報が入っています。
http://d.hatena.ne.jp/language_and_engineering/20111006/p1
http://blog.hebita164.jp/entry/20101024/1287933193
※ページの名称とIDのみの表示に関してコードに追加しました。
管理人の権限で追加して管理する権限を取得したページの場合、上記Graph API利用によるコードでもFQLでも、ページのデータを取得できない現象を確認しました。
この事が明記されたページが見つからない為、仕様か不具合かは不明です。
取得したページ一覧の利用目的が分かりませんが、単に管理しているページへのアクセスを簡単に行いたいのでしたら、個人アカウントのホームにアクセスして、サイドバーからアクセスしてはいかがでしょうか?
仕事など自分専用のページを作成している場合、ページ名アカウントで「いいね!」する事もできますので、ページのハイライトに表示されている「いいね!」の一覧からアクセスする事もできます。
自分用アプリで取得したい場合は、「いいね!」したサイトの一覧なら取得できますので、管理するページだけ「いいね!」して、「$facebook->api('/me/likes');」で取得してもいいと思います。
「いいね!」を通常通り利用したい場合はこの方法は使えませんが・・・
自分で作成したページのデータは取得できるはずですので、こちらのデータが取得できない場合の理由は分かりません。
なお、一部希望の動作に添えなかったようですので、ポイント送信メッセージで一部ですがポイントを返還してありますので、ご確認お願いします。
パーミッションの付与が正しく行われていなかったのが原因でした。
「req_perm」を「scope」に修正すると取得できます。
大変失礼しました。
$url = $facebook->getLoginUrl(array( (~ 略 ~) 'req_perms' => 'status_update,publish_stream,manage_pages,offline_access' ));
管理人の権限で追加して管理する権限を取得したページの場合、上記Graph API利用によるコードでもFQLでも、ページのデータを取得できない現象を確認しました。
2012/08/25 05:58:28この事が明記されたページが見つからない為、仕様か不具合かは不明です。
取得したページ一覧の利用目的が分かりませんが、単に管理しているページへのアクセスを簡単に行いたいのでしたら、個人アカウントのホームにアクセスして、サイドバーからアクセスしてはいかがでしょうか?
仕事など自分専用のページを作成している場合、ページ名アカウントで「いいね!」する事もできますので、ページのハイライトに表示されている「いいね!」の一覧からアクセスする事もできます。
自分用アプリで取得したい場合は、「いいね!」したサイトの一覧なら取得できますので、管理するページだけ「いいね!」して、「$facebook->api('/me/likes');」で取得してもいいと思います。
「いいね!」を通常通り利用したい場合はこの方法は使えませんが・・・
自分で作成したページのデータは取得できるはずですので、こちらのデータが取得できない場合の理由は分かりません。
なお、一部希望の動作に添えなかったようですので、ポイント送信メッセージで一部ですがポイントを返還してありますので、ご確認お願いします。
パーミッションの付与が正しく行われていなかったのが原因でした。
2012/08/25 07:19:11「req_perm」を「scope」に修正すると取得できます。
大変失礼しました。