Gitから Facebook Android SDK をダウンロードし、 developers.facebookの手順に従い、アプリケーション ID を取得してサンプル コードを実行しました。ステータスを壁に投稿できます。今、説明やキャプションを付けて壁に写真をアップロードしようとしていますが、できません。閲覧したところ、ほとんどの場合、写真のアップロードの回答として次のコードが見つかりました。
public void postImageonWall() {
byte[] data = null;
Bitmap bi = BitmapFactory.decodeFile("/sdcard/cutedog.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();
Bundle params = new Bundle();
params.putString(Facebook.TOKEN, mFacebook.getAccessToken());
params.putString("method", "photos.upload");
params.putByteArray("picture", data);
params.putString("caption", "So Cuuteee!!");
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null);
}
このため、{"pid":"100003180585600_320223","aid":"100003180585600_43760","owner":100003180585600,"src":"http://photos-g.ak.fbcdn.net/ という応答を得ました。 hphotos-ak-prn1/533575_198930480222970_100003180585600_320223_995139351_s.jpg","src_big":"http://a7.sphotos.ak.fbcdn.net/hphotos-ak-prn1/s720x720/533575_198930480222970_100003180585600_320223_995139351_n.jpg","src_small":"http: //photos-g.ak.fbcdn.net/hphotos-ak-prn1/533575_198930480222970_100003180585600_320223_995139351_t.jpg","リンク":"http://www.facebook.com/photo.php?fbid=198930480222970&set=303.40.1 100003180585600&type=1","caption":"とってもキュート!!","created":1333718624,"object_id":198930480222970}
写真は小さなサイズの写真としてどこかにアップロードされます (URL が表示されます)。しかし、Facebook ウォールやアルバムにはありません。Stack Overflow question Android - How to upload photo from SD card to the Facebook wallを見て、試してみました
mAsyncRunner.request("me/photos", params, "POST", new SampleUploadListener(), null);
と
mAsyncRunner.request("me/feed", params, "POST", new SampleUploadListener(), null);
両方について、私は応答として以下を得ました
{"error":{"message":"Unsupported method, photos.upload","type":"Exception"}}
ウォールにアップロードするにはどうすればよいですか?