目次
PHPでFacebookアプリを作っていた際のエラー対応
Facebookアプリを作っていたら、エラーがいくつか出たので、メモ。
PHPで作っていたので、PHPでの例になります。
#100 The privacy param cannot be applied when a target is specified.
自分が作ったページのウォールに書き込みをしようとした時に出たエラー。
他人のものにprivacy権限を付けるなということの模様。
$response = $facebook->api( '/[ID]/feed', 'post', array( 'message' => $message, // 'privacy' => '{"value":"EVERYONE"}' ) );
privacyをコメントアウトしたら、エラーは消えました。
#100エラーが出る前に出ていたエラー。
ウォールへ書き込み権限がないということの模様。
$loginUrl = $facebook->getLoginUrl( array( 'canvas' => 1, 'fbconnect' => 0, 'req_perms' => 'status_update,publish_stream' // ステータス更新、フィードへの書き込み許可 ) );
publish_stream付けて、再ログインしたら、エラーは消えました。
権限については、ドキュメントを参考に。
#324 Requires upload file.
写真アップロード出来ないということの模様。
他人の写真のURLを指定してたのが悪かったみたい。
$source = "http://k.yimg.jp/images/top/sp/logo.gif"; // このままでは使えない $file = file_get_contents($source); $tmpfname = tempnam('./tmp', 'source'); $handle = fopen($tmpfname, "w"); fwrite($handle, $file); fclose($handle); $source = '@' . realpath($tmpfname); $message = "test"; try { $requestParameters = array( 'access_token' => $facebook->getAccessToken(), 'message' => $message, 'source' => $source, ); $facebook->setFileUploadSupport(true); $response = $facebook->api( '/[ID]/photos', 'post', $requestParameters ); } catch (FacebookApiException $e) { $error = "Error : something is wrong, please try again later."; exit(); }
自分のアプリがあるサーバに一度ファイルを置いてから、@+パスを通して上げれば、エラーは消えました。
色々と問題は起これど、躓いただけ、出来上がった時の達成感が凄いですね!