« 05.22 Cloud Foundryにデプロイしてみる | ココ | 05.29 Evernote Devcup Meetup行ってみた »
2012年5月23日
Facebook PHP SDKのgetLoginStatusUrl()がおかしい
いや正確には、getLoginStatusUrl()で返ってくるURLにfile_get_content()とかでアクセスした結果がおかしいんですが。
Facebookでログインしているかどうかを調べるには、PHP SDKの場合getLoginStatusUrl()メソッドを使ってログイン状態を確認するためのURLを生成し、そこにアクセスするようにします。getLoginStatusUrl()は、ログインしていてセッションがある/ログインしているがセッションがない/ログインしていないという3つの状態にURLを割り当てて、生成されたURLにアクセスすると状態に合わせたURLを取得することができるというメソッドで、何をしてるかというとリダイレクト先のURLを取得することになるんですが…これがなぜかうまく動かないという現象に遭遇中。
$login_status = $facebook->getLoginStatusUrl();
$res = @file_get_contents($login_status);
error_log(print_r($res, true));
という感じでログイン状態を調べると、$resが"Application Error"になる。ログがこんな感じ。
==> /var/log/nginx/xxxxxxxx-default-www-0.error.log <==
2012/05/21 15:33:51 [error] 5973#0: *406 FastCGI sent in stderr: "Application Error" while reading response header from upstream, client: 10.79.37.178, server: xxxxxxxx-default-www-0, request: "GET /aaaaaaaa HTTP/1.1", upstream: "fastcgi://unix:/var/dotcloud/php5-fpm.sock:", host: "xxxxxxxx.dotcloud.com"
どういうことやねんこれ。バグレポートっぽいのも一応出されていた。
てので報告されていたにもかかわらず、「もっと情報くれ」というメッセージを突き付けられ一旦Closedにされていて、 でも同じような内容が報告され、こちらは対応中…。いつになったら直るのか。getLoginUrl()で得られるURLにアクセスしてみた後どうなるかってのもやってみたけども。
error_log(print_r($facebook->getUser(), true));
$login_url = $facebook->getLoginUrl();
$res = @file_get_contents($login_url);
error_log(print_r($facebook->getUser(), true));
==> /var/log/nginx/xxxxxxxx-default-www-0.error.log <==
2012/05/21 15:33:51 [error] 5973#0: *406 FastCGI sent in stderr: "0
0" while reading response header from upstream, client: 10.79.37.178, server: xxxxxxxx-default-www-0, request: "GET /aaaaaaaa HTTP/1.1", upstream: "fastcgi://unix:/var/dotcloud/php5-fpm.sock:", host: "xxxxxxxx.dotcloud.com"
最初にアクセスするとgetUser()で0が返ってくる、そして1度画面からログインすると両方とも自分のユーザーIDが返ってくる。謎…。
By ただ at 22:40 カテゴリー ; プログラミングとか
« 05.22 Cloud Foundryにデプロイしてみる |
05月の記事
| 05.29 Evernote Devcup Meetup行ってみた »
トラックバック
このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/1800