0

Facebook ウォールに画像 (画像リンクではなく画像データ) 付きのメッセージを投稿することはできますか?

http://developers.facebook.com/docs/reference/api/post/またはhttps://developers.facebook.com/docs/guides/attachments/でこの可能性を見つけられませんでした。

そして、私はそれを行うことが不可能であることを我慢する準備ができていましたが、iOS 6.0 で導入されたクラスのドキュメントに出くわしましSLComposeViewControllerた (http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Reference/SLComposeViewController_Class/Reference/ Reference.html)。

このクラスには、- (BOOL)addImage:(UIImage *)imageまさに私が必要とすることを行うメソッドがあります。

Android用にプログラムしているため、使用できません。ただし、明らかにこのメソッドは facebook API を使用する必要があります。しかし、私はそれを見つけることができません: 画像の投稿に関連するすべてのものには、データではなく URL が必要です。

では、Android で Facebook ウォールに画像データ付きのメッセージを投稿することは可能ですか?

4

1 に答える 1

1

編集:私はほとんどあなたのコメントで答えを投稿しました。このようなものを使用して、 Image から にキャストできassetsますBitmap

InputStream bitmap = null;

try {
    bitmap = getAssets().open("icon.png");
    bmpImageGallery = BitmapFactory.decodeStream(bitmap);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    bitmap.close();
}

これは、メソッドのインテントを介してギャラリーから画像を表示するonActivityResult方法です。

targetURI = data.getData();

try {

    bmpImageGallery = MediaStore.Images.Media.getBitmap(this.getContentResolver(), targetURI);

    // SET THE IMAGE FROM THE GALLERY TO THE IMAGEVIEW
    imgvwSelectedImage.setImageBitmap(bmpImageGallery);

} catch (FileNotFoundException e) {
    e.printStackTrace();

} catch (IOException e) {
    e.printStackTrace();
}

画像をアップロードするコードは次のとおりです。

byte[] data = null;

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmpImageGallery.compress(CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();

Bundle postImgGallery = new Bundle();

// ADD THE PHOTO DATA TO THE BUNDLE
postImgGallery.putByteArray("photo", data);

// ADD THE CAPTION FROM THE STRING finalStatusMessage TO THE BUNDLE
if (finalStatusMessage.equals(""))  {
    /*****  DO NOTHING HERE     *****/
} else {
    postImgGallery.putString("caption", finalStatusMessage);
}

Utility.mAsyncRunner.request(userID + "/photos", postImgGallery, "POST", new PhotoUploadListener(), null);

注:このビットで"caption", finalStatusMessageは、captionを に置き換えることもできますmessage。これらのいずれかを使用した投稿に違いを見たことはありません。ただし、安全のために、どちらかを使用する前に確認してください。;-)

このクラスは、アップロードのステータスを確認するために使用されます。

private class PhotoUploadListener extends BaseRequestListener   {

    @Override
    public void onComplete(String response, Object state) {
        // DISPLAY A CONFIRMATION TOAST
    }

}
于 2012-11-14T14:49:42.403 に答える