0

私はしばらくこの問題に悩まされていましたが、今日はあきらめました。本当に助けが必要であることに気付き、同様の問題に対処する投稿が見つかりませんでした..そう

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 だけですが、graph.facebook.com/me?access_token=[どこかから提供されたアクセス トークン] にアクセスすることで、現在のユーザー ID にアクセスできると確信しています。

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

現在、これらは私の設定です (詳細をお尋ねください) 設定 > 認証ダイアログ > 認証された紹介 > ユーザーと友人の許可 = メール 設定 > 認証ダイアログ > 認証された紹介 > 認証トークン パラメータ = ?code=

設定 > 詳細設定 > 移行 = すべて有効

4

1 に答える 1

1

FB はSigned Requestを使用してアプリにデータを送信します ($_POST ではなく、$_GET ではありません)。Sample Canvas Appsigned_request Parameterには、それについて説明している章があります。

php-sdkを使用すると、次のように取得できます。

$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' => '***',
)

app_dataさらに、URL を介して呼び出されるパラメーターを渡すことができます。

"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,
...

コメントしてください!ありがとう。-

于 2012-01-15T12:01:08.873 に答える