FaceBook連携のWEBアプリを作ってるときの話なのですが。。
An active access token must be used to query information about the current user.
というエラー。
出ました。ご他聞にもれず。
で、いろいろ情報収集。
まぁここらへんからたどれば、解決しそうな感じはしたのです。
http://fb.dev-plus.jp/forum/topic.php?id=67
でも、いっこうに改善されず。
ところが、ひょんなことから、localhost連携だと成功。
WEBサーバだと失敗。
んーーーー。よくある。それだ!
ってことで、WEBサーバ、リバースプロキシしてるんですよね。
だから、PHP、で$_SERVER['HTTP_HOST']がサーバ名になってまうわけです。
で、GREP。
その結果、以下のコードを発見。
protected function getHttpHost() { if ($this->trustForwarded && isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { return $_SERVER['HTTP_X_FORWARDED_HOST']; } return $_SERVER['HTTP_HOST']; }コンストラクタにたは、
if (isset($config['trustForwarded']) && $config['trustForwarded']) { $this->trustForwarded = true; }そっか。ってことで、無事に、コンストラクタを以下にすることにより、解決。
$facebook = new Facebook(array( 'appId' => $appId, 'secret' => $secret, 'trustForwarded' => true, 'cookie' => true ));
0 件のコメント:
コメントを投稿