Android Facebook API发布照片

时间:2014-01-21 00:48:51

标签: android facebook api bitmap share

我完全迷失在Android的Facebook API上,因为文档是可怕的! 即使我将他们的例子复制到角色,(修改以适合我的应用程序)它仍然无效!

我已附加到我的分享按钮:

    Session session = Session.getActiveSession();
    if (session.isOpened()) {
        OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
        action.setProperty("meal", "https://example.com/cooking-app/meal/Lamb-Vindaloo.html");
        action.setType("feed");
        Bitmap bitmap;
        if (hasIcon) {
            bitmap = ((BitmapDrawable)recipeIcon.getDrawable()).getBitmap();
        } else {
            bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_special_rosemary);
        }

    List<Bitmap> images = new ArrayList<Bitmap>();
        if (bitmap != null) {
            Log.d("image!", bitmap.getByteCount() + "");
            images.add(bitmap);

        FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "meal")
        .setImageAttachmentsForAction(images, true)
        .build();
        uiHelper.trackPendingDialogCall(shareDialog.present());
        } else {
            Log.d("no image", "");
            FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "meal")
            .build();
            uiHelper.trackPendingDialogCall(shareDialog.present());
        }

这一切都很好,即使Log告诉我Bitmap在那里,不是null,并且包含〜160kb的byteCount,但当我将它附加到共享对话框时,它会出现这个...

01-21 00:39:30.214: E/Activity(2214): Error: com.facebook.FacebookException: Error retrieving image attachment.

什么?它没有正确附着吗?好吧,它一定不是,但这是直接从他们的文档中复制的示例,它不起作用!我只想上传当前图片。表现不佳

1 个答案:

答案 0 :(得分:0)

请参阅您正在调用的方法的参考文档 - https://developers.facebook.com/docs/reference/android/current/class/FacebookDialog.OpenGraphActionDialogBuilder/#setImageAttachmentFilesForAction

“为了将图像作为应用程序调用的一部分提供给Facebook应用程序,必须在应用程序的AndroidManifest.xml中正确指定NativeAppCallContentProvider。”

在NativeappCallContentProvider - https://developers.facebook.com/docs/reference/android/current/class/NativeAppCallContentProvider/中 - 您将看到需要将com.facebook.app.NativeAppCallContentProvider {FACEBOOK_APP_ID}添加到清单。