1)ここからFacebookアプリケーションを作成します。
http://developers.facebook.com/apps
そして、あなたのドメインでそれを構成します。
この手順は非常に簡単です。アプリケーション名となる名前空間を入力し、アプリケーションが「アプリケーションとログインページ」(ファンページなどに関連するものではない)として使用されることを確認し、最後にURLを指定します。 Facebook APIを使用します(Canvas URLは空白のままにします)。
ちょっと注意してください。FacebookAPIにはHTTPSURLが必要だと思いますが、なぜまだHTTPを許可しているのかわからないので、今は心配しないでください。
ログイン設定:
URLを設定します:http://yourdomain.com/
アプリケーション構成:
http://yourdomain.com/myfacebookapp/
したがって、ユーザーが次の場所に移動すると、次のようになります。
http://apps.facebook.com/yourappName
ユーザーが実際に最初のリンクを閲覧していることを意味し、そのページ(たとえばindex.php
)では、以下からすべてを実行する必要があります。
参考までに、この時点で、アプリケーションのロゴを設定し、管理者を管理し、後でPHPファイルで使用するアプリケーションIDとシークレットを取得することもできます。
(このステップで混乱した場合は、Google検索を実行できますが、この構成は簡単に見つかります)
2)私は常にこれらのファイルを使用してPHP環境をFacebook APIにリンクしています。Dropboxからのリンクは次のとおりです:https ://www.dropbox.com/s/itw4pav1f7a9vez/files.rar
3)それらのファイルを。という名前のフォルダに入れますfb
。
4)ユーザーからデータと画像を取得する方法を説明しますが、最初にユーザーは、アプリケーションにログインするときに、アプリケーションがこの情報を取得できるようにする必要があります。
したがって、この例では、ログインに簡単なボタンを使用します。
(アプリケーションIDとシークレットを置き換えることを忘れないでください。「xxx」と「yyy」に注意してください)
<?php
require 'fb/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'yyy',
));
// Check if user is already logged
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Get login or logout URL
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
?>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Facebook PHP SDK</title>
</head>
<body>
<h1>Facebook PHP SDK</h1>
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<div>
<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>Your picture</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
<h3>Your info (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not connected.</em></strong>
<?php endif ?>
</html>
5)上記の例では、JavaScriptを使用せずにFacebookPHPSDKを使用しています。したがって、ユーザーがログインしてアプリケーションに情報の取得を承認する場合は、ページ全体がアプリケーションのFacebook権限ページにリダイレクトされ、その後、Facebookアプリケーションのメインページに戻ります(あなたの申請)。
6)以下のコードは上記と同じように機能しますが、JavaScriptとカスタムFacebookログインボタンを使用して、質問に書き込んだように特別な権限を設定できます。もう1つの違いは、ページ全体をリダイレクトする代わりにポップアップが表示されることです。
(アプリケーションIDとシークレットを置き換えることを忘れないでください。「xxx」と「yyy」に注意してください)
<?php
require 'fb/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'yyy',
));
// Check if user is already logged
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
$logoutUrl = $facebook->getLogoutUrl();
} catch (FacebookApiException $e) {
$user = null;
}
} else {
$loginUrl = $facebook->getLoginUrl();
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Facebook PHP SDK</title>
</head>
<body>
<fb:login-button size="small" onlogin="after_login_button()" scope="email, user_about_me, user_birthday, user_status, publish_stream, user_photos, read_stream, friends_likes">Login with facebook</fb:login-button>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $facebook->getAppID() ?>',
cookie: true,
xfbml: true,
oauth: true
});
// This is used by Facebook login button
FB.Event.subscribe('auth.login', function(response) {
if (response.authResponse) {
// Specify the login page where Facebook login button is located
window.location = 'main.php';
}
});
FB.Event.subscribe('auth.logout', function(response) {
window.location = 'logout.php';
});
};
(function() {
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
function after_login_button(){
FB.getLoginStatus(function(response) {
if (response.status == 'connected') {
// If user is connected, redirect to below page
window.location = 'main.php';
}
}, true);
}
</script>
</body>
</html>
7)ご覧のとおり、Facebookログインボタンのスコープ属性は、たとえば電子メールなどのユーザーからアプリケーションに必要な特別なアクセス許可と情報を決定します(許可されていない限り、これは常に非公開です)。
8)何かを追加するには、次の方法を使用して、誰かから公開情報のみを取得できます。
// For example: Your Facebook friend's profile is http://www.facebook.com/foobar
$myFriend = $facebook->api('/foobar');
// For example: Your Facebook friend's profile is http://www.facebook.com/users/1002020300010
$myFriend = $facebook->api('/1002020300010');
// Print the name
echo $myFriend['name'];
// Print all data
print_r($myFriend);
そして、Facebookの友達の写真を撮るには、次のようにします。
<img src="https://graph.facebook.com/foobar/picture">
または:
<img src="https://graph.facebook.com/1002020300010/picture">
最後に、必要なすべてのユーザー情報があるとすると、問題や制限なしにすべてをDBに保存できます。
これが参考になることを願っています。