2012-01-03 29 views
2

私はFacebook API経由でユーザーを認証する方法を理解しようと、一晩中座っていました。ユーザーIDを取得するだけです。 S/Oのヒントやアイデア、5ページの「Googleガイド」、そしてFacebookデベロッパーガイドのほとんどすべてを試しましたが、何も私にとってうまくいかないようです。誰かがとても親切で、これをうまく利用する方法をステップバイステップで説明してください!IDからのIDの取得PHP SDK

Open Graphはこれに必要ですか?私もそれを試して、それなしで動作しませんでした。私はすでに(?そこにそうでないかもしれない右の設定)私のアプリを持っており、事前にPHP SDK

$uid = $facebook->getUser();など全く私にどんな助けを与えていない。)

ありがとう!

このコードは動作していません。S/Oではこのコードが見つかりました。彼は完璧に動作していると言いました。

<?php 
require_once 'facebook.php'; 
$facebook = new Facebook(array(
    'appId' => '########', 
    'secret' => '##########################', 
    'cookie' => true, 
)); 

$req_perms = "publish_stream,offline_access,user_status,email,read_stream"; 
$session = $facebook->getSession(); 
$loginUrl = $facebook->getLoginUrl(array('canvas'=> 1,'fbconnect' => 0,'req_perms' => $req_perms)); 
$user_info = null; 
if (!$session) 
    { echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";exit;} 
else{ 
    try { $user_info = $facebook->api('/me'); } 
    catch (FacebookApiException $e) 
     { echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; exit;} 
    } 
?> 
<!doctype html> 
<html> 
<head> 
</head> 
<body> 
<?php 
$user_name=$user_info['name']; 
echo "Hi $user_name ! Your Facebook ID is: ".$user_info['id']."<br/>"; 
echo "Hi $user_name ! Your E-mail Address is: ".$user_info['email']."<br/>"; 
echo "Thanks for accepting our application."; 
//print_r($user_info); 
?> 
</body> 
</html> 

編集:すべての迅速な対応のおかげで、私は最終的にそれが働いてしまいました!この

https://www.facebook.com/dialog/oauth? 
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL 

のようにリンクしてください。これは、STEP2のために必要とされるFacebookアプリをユーザに許可:私は...すべてに沿って正しい軌道に乗って

ステップ1でした。

手順2:このコードスニペットを実装します。

require_once('facebook.php'); 

$fb_app_id = "APP_ID"; 
$fb_secret = "APP_SECRET"; 
$fb_app_url = "APP_URL"; 
$facebook = new Facebook(array(
    'appId' => $fb_app_id, 
    'secret' => $fb_secret, 
    'cookie' => true, 
)); 

$facebook_login_url = $facebook->getLoginUrl(array(
    'canvas' => 1, 
    'fbconnect' => 0, 
    'scope' => 'publish_stream,user_photos', 
    'redirect_uri' => $fb_app_url 
)); 

$facebook_user_id = $facebook->getUser(); 

あなたのヒントについては、@KevinCogill@JuicyScripterをありがとうございました!

+0

現時点で使用しているコードを表示できますか? – nav

+0

私はとても多くを試しましたが、私が最も複雑ではないものを見つけることができるかどうかを見てみましょう。今すぐ追加されたコードスニペット! –

+0

「ステップ1」で作成したリンクは、どこでどのように使用しましたか?このコードはまだユーザーを認証するのに有効ですか? –

答えて

2
require_once('facebook/facebook.php'); 

$facebook = new Facebook(array(
    'appId' => $fb_app_id, 
    'secret' => $fb_secret, 
    'cookie' => true, 
)); 

$facebook_login_url = $facebook->getLoginUrl(array(
    'canvas' => 1, 
    'fbconnect' => 0, 
    'scope' => 'publish_stream,user_photos', 
    'redirect_uri' => $fb_app_url 
)); 

$facebook_user_id = $facebook->getUser(); 
+1

'$ facebook_login_url'を最初に訪れるまで、' $ facebook_user_id'は空になります。 –

+0

このコードスニペットはすべての作業を行いますか?私はアプリのID変数を設定した後? –

+0

これはちょうど0を返します、これの原因は何ですか?私はこの結果を昨日何度も得た。 –

3

Facebookはすでにあなたのためにそれをやった:

あなたはAuthenticationを読み、examples

アップデート(更新されたコードサンプル上の注意事項)を参照しなければなりません:あなたは本当に最新に存在していないgetSessionを使用して
をバージョンのFacebook PHP-SDKとreq_permsは今やscopeと呼ばれています。他の場所に投稿されたFacebookのドキュメントやチュートリアルを読んだことはありますか? Facebookは頻繁に物事を変えていますが、他のソースで見つかるチュートリアルのほとんどは非常に古くなっています。正式な情報源から情報を得ることをお勧めします(最高の品質でない場合でも)

関連する問題