0

私は Facebook キャンバス アプリケーションを開発していましたが、この単純なコードが失敗することがわかりました。チュートリアルから直接取ったので、何がうまくいかなかったのかわかりません:

<?php

require 'facebook.php';

/*
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
*/

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


//Request params
if(!($facebook->getSession()))
{
        header("Location:" . $facebook->getLoginUrl(array('req_perms' => 'publish_stream')));
        exit;
}

?>

問題は にありheader("Location:" . $facebook->getLoginUrl(array('req_perms' => 'publish_stream')));ます。それを削除すると(出口の削除を含む)、アプリケーションは正常に動作します。しかし、私がそれを持っているとき、アプリケーションは何も表示しません。ただの白紙。また、Chrome の開発者ツールに「channel.facebook.com からのリソースの読み込みエラー」があります。

誰が間違っているのかを見つけるのを手伝ってくれますか? このコードで何が問題なのかわかりません。appId と secret が正しいことを確認しました。

4

2 に答える 2

0

これはあなたを助けるかもしれません:

channel.facebook.comからのリソースの読み込みエラーはあなたの問題とは無関係です。Facebookページで何度もそのエラーを見てきました。それは彼らの問題です。

PHPエラーがあり、error_reportingが0に設定されているために、空白の画面が表示される可能性があります。error_reporting(E_ALL)を試して、これが問題であるかどうかを確認してください。

このコードはどこにありますか、他のテキスト出力の前に送信しているヘッダーはありますか?ページの上部にコードを配置してみてください。

これらはあなたがチェックできるいくつかの基本的なものです、それが役立つことを願っています。幸運を。

于 2011-04-30T14:56:11.077 に答える
0

Facebook PHP SDKgetLoginUrlの機能で生成されたログインURLに(サーバー側からPHPで)リダイレクトしようとしたときに、同じ問題(空白のページ)が発生しました。

この問題は、リダイレクトがiFrameにあるという事実に関連しているようです。リダイレクトは、キャンバスフレームではなく、親フレームに対して行う必要があります。

PHPでは、親フレームをリダイレクトするようにブラウザに指示する方法はありません。Javascriptでリダイレクトする必要があります。

$loginUrl = $facebook->getLoginUrl(array('req_perms' => 'publish_stream'));

echo '<script type="text/javascript">top.window.location="'.$loginUrl.'";</script>';
于 2012-04-24T19:33:30.323 に答える