我完全迷失在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.
什么?它没有正确附着吗?好吧,它一定不是,但这是直接从他们的文档中复制的示例,它不起作用!我只想上传当前图片。表现不佳
答案 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}添加到清单。