2012年01月28日 Facebook
今回はFacebookのPHP SDKを使って、ユーザー情報を取得します。

PHP SDKを取得・設置

まず、githubからFacebookのPHP SDKをダウンロードします。 Facebook PHP SDK ダウンロードしたファイルを解凍すると以下のようなファイル構成になっていると思います。
/examples/ /tests/ /src/ changelog.mb readme.mb
この中で必要なのは、「src」フォルダです。 FacebookアプリのキャンバスURLで設定しているサーバ階層に、srcフォルダとこれから作成するindex.phpをアップします。

ログインしているユーザー情報を表示させるPHPプログラム

以下のソースをindex.phpとして設置します。 PHP内のコメントで「***を記入」となっている2ヶ所を独自のIDに変更してください。
<?php

require_once("src/facebook.php");

$config = array();
//以下を編集してアプリIDを記入
$config['appId'] = 'YOUR_APP_ID';

//以下を編集してアプリ秘訣を記入
$config['secret'] = 'YOUR_APP_SECRET';
$config['fileUpload'] = false; // optional

$facebook = new Facebook($config);

$uid = $facebook-&gt;getUser();

if($uid){
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook-&gt;api('/me');

} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}else{
$loginUrl = $facebook-&gt;getLoginUrl();
echo("&lt;br&gt;login url=".$loginUrl);
};

// Get User ID
$user = $facebook-&gt;getUser();

// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook-&gt;api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}

// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook-&gt;getLogoutUrl();
} else {
$loginUrl = $facebook-&gt;getLoginUrl();
}

// This call will always work since we are fetching public data.
$naitik = $facebook-&gt;api('/naitik');

?>


<!DOCTYPE HTML>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>php-sdk</title>
<style>
body {
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
}
h1 a {
text-decoration: none;
color: #3b5998;
}
h1 a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<h1>php-sdk</h1>

<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<div>
Login using OAuth 2.0 handled by the PHP SDK:
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
</div>
<?php endif ?>

<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>

<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>

<h3>Public profile of Naitik</h3>
<img src="https://graph.facebook.com/naitik/picture">
<?php echo $naitik['name']; ?>
</body>
</html>

サンプルソース
上記ソースに、あなたのIDを入力したら、index.phpとして、srcフォルダと同じ場所(facebookキャンバスURLの箇所)にアップロードします。 以下のような構成になります。
アップロード後のサーバ上のファイル構成
http://your_canvas_url.com/src/ http://your_canvas_url.com/index.php
アップロードが完了したら、以下のURLにアクセスして動作を確認してみてください。
https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_CANVAS_URL

https://www.facebook.com/dialog/oauth?client_id=123456789&redirect_uri=https://your_canvas_url.com/
というか、そんなややこしいことしなくても、facebook開発者のアプリ情報に載ってるカンバスURL(https://apps.facebook.com/〜)にアクセスしたらいいような・・・。
正常に動作していると、[id]、[name]、[first_name]、、[last_name]、[link]、[username]、[hometown] 、なんかが配列に展開されていると状態になります。 アプリを公開しているサーバのcURLやSSLの設定によっては、cURL関係のエラーが出ることがあります。

この投稿へのコメント

コメントはまだありません。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

Facebookのいいねボタン設置&OGP対応の流れ

2012年02月01日 Facebook
OGPに対応して設置するのが、少し、ややこしくて、とっつきにくいという方が多いようなので、OGPに対応した「いいねボタン」の設置の流れについて書きたいと思います。 流れさえ、把握出来れば、設置方法自体はそれほど複雑ではありません。 1.いいねボタンのコードを取得 以下のリンクから、いいねボタンのコードを取得し、設置します。 Like Button - Facebook開発者 2.OGP…
「Facebookのいいねボタン設置&OGP対応の流れ」をはてなブックマークに追加

Facebook APIを利用して、外部サイトから自分のウォールに投稿する

2012年03月19日 Facebookphp
ウォールへ投稿 外部サイトからFacebook上のウォールに投稿する方法です。 説明が不要なぐらい簡単でした。 [php]<?php $data = array( 'access_token' => $facebook->getAccessToken(), 'message' => 'API投稿テスト', ); $response = $facebook->…
「Facebook APIを利用して、外部サイトから自分のウォールに投稿する」をはてなブックマークに追加

FacebookアプリをFacebookページ(ファンページ)に追加する

2012年01月27日 web関連Facebook
[php]https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&display=popup&next=YOUR_URL [/php] この「YOUR_APP_ID」はApp ID/API Keyに、「YOUR_URL」はアプリのURLに書き換えて、ブラウザからアクセスしてください。 アプリのApp ID/API K…
「FacebookアプリをFacebookページ(ファンページ)に追加する」をはてなブックマークに追加

Facebook アプリ開発 ユーザーのプロフィール写真を取得・表示

2012年01月29日 Facebook
前回の記事でユーザーID($uid)が取得できましたが、それを使って、以下のように設定するだけで、画像が表示されます。 [php]<img src="https://graph.facebook.com/<?php echo $uid; ?>/picture"> [/php] 現状、これがベストな(というか正しい)のか分かりませんが、動作は正常で、設…
「Facebook アプリ開発 ユーザーのプロフィール写真を取得・表示」をはてなブックマークに追加

Facebookで小学校、中学校の友人検索【もっと友達検索】

2012年02月03日 Facebook
もっと友達検索とは Facebookで小学校や中学校の同級生を探せるようになったらいいな、という発想から出来たアプリです。 まだまだ、β版ですが、多くの方に利用されていくといいですね。 もっと友達検索【小学校・中学校】on Facebook african mango…
「Facebookで小学校、中学校の友人検索【もっと友達検索】」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy