FacebookアプリでError code: 196
はい。eeyanaikaです。
さて、今回はFacebookアプリをiPhoneで動かした際に「Error code: 196」というエラーが出力される現象についてです。
これはこちらの記事にありますように、モバイル版はredirect_uriを渡したらダメだそうです。
モバイル版およびiPhoneアプリ版の場合は、下記のようにredirect_uriを渡さないようにするとうまく動きました。
<?php require '../src/facebook.php'; // アプリのインスタンスを作成(appIdとsecretは適宜置き換えてね) $facebook = new Facebook(array( "appId" => アプリID, "secret" => アプリシークレットコード, )); try { // 現在ログイン中のユーザー情報を取得する $user_id = $facebook->getUser(); } catch (FacebookApiException $e) { // Facebook APIエラー } if (!$user_id) { $is_app = (strpos($ua, 'FBAN') !== FALSE); $is_mobile = (strpos($ua, 'iPhone') !== FALSE || strpos($ua, 'iPad') !== FALSE || strpos($ua, 'iPod') !== FALSE || strpos($ua, 'Android') !== FALSE); // Facebookのアプリ経由の場合はredirect_uriは指定しない if ($is_app == TRUE || $is_mobile == TRUE){ $url = $facebook->getLoginUrl(array( "scope" => "publish_stream" )); } else { $url = $facebook->getLoginUrl(array( "redirect_uri" => "http://apps.facebook.com/".アプリ名, "scope" => "publish_stream" )); } // アプリ未登録ユーザーなら facebook の認証ページへ遷移 echo "<script type='text/javascript'>top.location.href = '{$url}'</script>"; exit; }
それでは。