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

时间:2015-04-18 09:29:59

标签: facebook facebook-graph-api facebook-android-sdk

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

enter image description here

BUT !!!我无法在任何地方找到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",但它的类型只接受网址。

2 个答案:

答案 0 :(得分:2)

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

所以你可以这样做:

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

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

答案 1 :(得分:0)

您需要将文件添加到操作中,如文档中所述。关键是“图像”,看看它是如何在样本中使用的:https://github.com/facebook/facebook-android-sdk/blob/master/samples/Scrumptious/src/com/facebook/scrumptious/SelectionFragment.java#L361-L362