2012-01-15 8 views
0

私は今この問題に悩まされていますが、今日は諦めて、本当にひどく助けが必要であることを実感しました。紹介によるFacebookキャンバス認証

私はFacebookのアプリを作成しようとしています(2012年1月1日以降、標準の変更があった場合、あなたに教えてください)、キャンバスのURLを正しく設定しました。

だから今facebookで私のアプリにアクセスすると、apps.facebook.com/canvas-pageのように私のアプリを見ることができます。しかし、私は認証に問題があります。

私のアプリは基本情報とそれにアクセスしようとしているユーザーの電子メールアドレスが必要です。

これまでのところ、私は新しいユーザーが認証ダイアログを見て、自分のアプリケーションにアクセスできるように設定しました。私のアプリケーションにアクセスすると、上記のように私のアプリケーションが情報にアクセスできるようになります。しかし、私のキャンバスページに私は、PHPのコードのために、以下のなかった、と他には何も、私は、認証ダイアログからFacebookの紹介で私のアプリに渡されるどのような情報を見ることができるようにしたいん:しかし

<?php 
    print_r($_GET); 
    echo "\n"; 
    print_r($_POST); 
    ?> 

残念なことに、これは私に空の配列を与えています。

Facebookのアプリに本当に必要なのは、access_tokenとユーザーIDですが、現在のユーザーのIDにアクセスできることは確かですが、graph.facebook.com/me?access_token=[accessトークンからアクセスできますどこか]

私の最初の問題は、2番目の問題は、私がFacebookのログアウト時に私はapps.facebook.com/canvas-pageにアクセスすると私はログインするように求められない、なぜそうですか? JavaScriptを使ってFacebookにリダイレクトしてログインしてから、自分のアプリを参照する必要がありますか?

現在、これらは私の設定です(私はあなたにそれらを与えることができるように詳細を尋ねる) [設定]> [認証]ダイアログ>認証済みの紹介>ユーザー&友達許可=メール [設定]> [認証]ダイアログ>認証済みの紹介>認証トークンのパラメータ=?コード=

設定>詳細設定>移行= ALLのアプリ(ない$ _POST、$ _GETではない)にデータを送信するために

答えて

0

FBの使用Signed Requestを可能にしました。それについて話すという章がSample Canvas Appにあります。

あなたはこのようにそれを得ることができphp-sdk使用:URLを通じてapp_dataと呼ばれるパラメータを渡すことができるだけでなく

$signed_request = $facebook->getSignedRequest(); 

var_dump($signed_request); 

array (
    'algorithm' => 'HMAC-SHA256', 
    'expires' => 1326632400, 
    'issued_at' => 1326628636, 
    'oauth_token' => '***', 
    'page' => 
    array (
    'id' => '***', 
    'liked' => false, 
    'admin' => true, 
), 
    'user' => 
    array (
    'country' => 'cl', 
    'locale' => 'en_US', 
    'age' => 
    array (
     'min' => 21, 
    ), 
), 
    'user_id' => '***', 
) 

を:

"http://www.facebook.com/YourPage?v=app_1234567890&app_data=any_string_here" 

あなたも$signed_requestでそれを取得します。

... 
array (
    'algorithm' => 'HMAC-SHA256', 
    'app_data' => 'any_string_here', 
    'expires' => 1326636000, 
    'issued_at' => 1326629411, 
... 

コメントしてください!ありがとうございます.-

+0

私は '$ fb = new Facebook($ config);しました。 var_dump($ fb-> getSignedRequest) 'となってしまいました。結果はNULLです。私はそれを回避しようとしていましたので、少し遅れて返信しました。私は問題が私はyiiフレームワークを使用していると思う、それはログインのための他の場所にページをリダイレクトする - ユーザがログインしていない場合、これは問題だと思うので、私は問題を解決しました – mur

+0

私は問題を解決した、なぜ私はNULLを取得し続けて、 'print_r($ _ REQUEST)'も何も返しませんでした...ありがとう! – mur

+0

@mursalat素晴らしい。この回答が役に立つ場合は、「チェックアイコン」をクリックして良品として受け入れてください。サヨナラ... –