Facebookアプリ作成中のエラーの対応方法

プログラミング

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をコメントアウトしたら、エラーは消えました。

#200 The user hasn’t authorized the application to perform this action.

#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();
}

自分のアプリがあるサーバに一度ファイルを置いてから、@+パスを通して上げれば、エラーは消えました。

最後に

色々と問題は起これど、躓いただけ、出来上がった時の達成感が凄いですね!

コメントを残す