« 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