似乎缺少将本地图像附加到操作的方法

Method to attach local images to actions seems missing

因为使用标准的 SharePhoto 不允许您添加自己的描述、标题和其他内容。我正在使用 OpenGraphStories 共享对话框。现在的问题是 facebook 文档说:

但是!!!我在任何地方都找不到 addPhoto()。我搜索了他们的参考资料,甚至搜索了 4.0 之前的文档。

代码片段:

ShareOpenGraphObject place = new ShareOpenGraphObject.Builder()
    .putString("og:type", "place")
    .putString("og:title", "sample title")
    .putString("og:description", "sample description")
    .putString("place:location:latitude", "Sample Location: Latitude")
    .putString("place:location:longitude", "Sample Location: Longitude")
    .build();

ShareOpenGraphAction publish = new ShareOpenGraphAction.Builder()
    .setActionType("news.publishes")
    .putObject("place", place)
    .build();

SharePhoto photo = new SharePhoto.Builder()
    .setBitmap(mCombinedBitmap)
    .setUserGenerated(true)
    .build();

ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
    .setPreviewPropertyName("news")
    .setAction(publish)
    .build();

mShareDialog.show(ShareActivity.this, content);

-编辑-

我找到了这个 putPhoto(String key, SharePhoto photo),你可以在 ShareOpenGraphObject 中使用它,尽管我还不知道密钥。只有 "og:image" 但它的类型只接受 URL.

您需要按照文档中的说明将图像添加到操作中。关键是 "image" 看看它在示例中是如何使用的:https://github.com/facebook/facebook-android-sdk/blob/master/samples/Scrumptious/src/com/facebook/scrumptious/SelectionFragment.java#L361-L362

显然密钥 "og:image" 可以接受 SharePhoto 对象。

所以你可以这样做:

SharePhoto photo = new SharePhoto.Builder()
    .setBitmap(bitmap)
    .build();

ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
    .putPhoto("og:image", photo)
    .build();