1

私は現在、phpsdkとjssdkを使用してFacebookアプリケーションを開発しています。(両方必要です)

ユーザーがまだアプリケーションを承認しておらず、キャンバスページ(https://apps.facebook.com/app_name/)をロードしても、何も起こらず、Facebookバーが上にある空白のページが表示されます。ただし、アプリケーションの直接URL(https://my_app.mydomain.com)をロードすると、正常に機能し、OAuthダイアログにリダイレクトされます。彼がアプリケーションを承認すると、 https: //apps.facebook.com/app_name/にリダイレクトされ、iframeが正しく読み込まれます。

ユーザーがすでにアプリケーションを承認している場合は、両方のリンクが機能しています(https://apps.facebook.com/app_name/およびhttps://my_app.mydomain.com)。

これが私の認証コードです:

<?php

require 'php-sdk/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '327991330620101',
  'secret' => '79asecretcc4300',
  'cookie' => true
));

$user = $facebook->getUser();



if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}

if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {

    $params = array(
      'scope' => 'publish_stream',
      'redirect_uri' => 'https://apps.facebook.com/quiet_quies/'
    );

  $loginUrl = $facebook->getLoginUrl($params);
  header('Location: ' . $loginUrl);
}

誰かがこれについて考えを持っていますか?それは本当に私を怒らせています...助けてくれてありがとう。

4

1 に答える 1

3

はい、@CBroeは正しいです。phpコードでheader('Location: ' . $loginUrl);行を次のように置き換えてみてください

echo "<script language=javascript>top.location.href ='".$loginUrl."'</script>";

それならうまくいくはずです。

于 2012-11-12T19:42:17.740 に答える