1
require_once($_SERVER['DOCUMENT_ROOT'] . '/facebook-php-sdk/facebook.php');

$facebook = new Facebook(array(
  'appId'  => FB_MAIN_APP_API_ID,
  'secret' => FB_MAIN_APP_SECRET
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  }catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

上記は、アプリケーションの Facebook の詳細を取得するために使用しているコードです。私のローカルホストでは、これは正常に機能しており、Facebook の電子メール、ユーザー ID が提供されます。これをライブサーバーにアップロードした後、この機能が機能せず、Facebook の詳細が表示されません。Facebook アプリ ID を確認しましたが、正しい ID です。

私のローカルホストで動作しているため、ライブサイトで動作しない理由がわかりません。これで私を助けてください。ありがとうございました。

4

3 に答える 3

0

Facebookのアプリの構成に正しいURLがあることを確認しましたか?

私はこのコードをFBアプリに持っていて、正しく動作しています。試してみてください。

$session = $this->facebook->getUser();
if ($session) {
    $logoutUrl = $this->facebook->getLogoutUrl();
    try {
        $data['uid'] = $this->facebook->getUser();
        $me = $this->facebook->api($session);
        $data['me'] = $me;
    } catch (FacebookApiException $e) {
        error_log($e);
    }
} else {
    $loginUrl = $this->facebook->getLoginUrl(
        array(
            'scope' => 'publish_stream, user_about_me, email',
            'redirect_uri' => 'YOUR URL',
            'canvas' => 1,
            'fbconnect' => 0,
            'display' => 'page',
        ));

}

if (!$session) {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}

$this->load->view('MY VIEW', $data);
于 2012-10-05T07:02:03.253 に答える
0

ユーザー ID を取得するには、ユーザーは許可を与える必要があります

$user_id = $facebook->getUser();
 echo $uid;

if($user_id){
  try {
    $user_profile = $facebook->api('/me');

  } catch (FacebookApiException $e) {
    error_log($e);
    $user_id = null;
  }
}else{
    $login_url = $facebook->getLoginUrl();
    echo("<br>login url=".$login_url);
};

ユーザーが login_url を確認してパーミッションを付与した後、ユーザー ID にアクセスできます。

これを試して

于 2012-10-05T07:55:15.833 に答える
0

サーバーで使用しているアプリに問題があると思います。そのため、ローカルホストに使用しているアプリと同じアプリを試して、ローカルホストの代わりにログインとログアウトの URL を使用してください$_SERVER['HTTP_HOST']

例 :

$session->fb_logout = $facebook->getLogoutUrl(array('next' => "http://" . $_SERVER['HTTP_HOST'] . "/path/to/logout"));

まず、何$user_profile = $facebook->api('/me');が表示されているかを確認します。変数のみprint_r$user_profile

元 :

    $user_profile = $facebook->api('/me');
    print_r($user_profile);
    exit;

空白が表示されている場合は、確実にcatchブロックに入ります。次に、catch ブロックに次のように記述します。

    print_r($e);
    exit;
于 2012-10-05T06:49:56.783 に答える