読者です 読者をやめる 読者になる 読者になる

Keep It Real BLOG

ソフトウェアエンジニア。1児の父。 酒、ラーメン、サッカー好き。旅行も好きですが、普段は出不精で大抵たまプラーザ界隈に居ます。

Facebookアプリ作成中のエラー

Web Web-PHP

本日、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();
        }
自分のアプリがあるサーバに一度ファイルを置いてから、@+パスを通して上げれば、エラーは消えました。

参考:"Requires upload file" exception