使用 facebook open graph stories v4 将图片附加到操作中

Posted

技术标签:

【中文标题】使用 facebook open graph stories v4 将图片附加到操作中【英文标题】:Attach picture to action using facebook open graph stories v4 【发布时间】:2015-06-25 03:51:44 【问题描述】:

我正在使用 facebook SDK 4. 和 open graph stories api。当没有用户创建的图像时,我可以创建一个动作并共享它,但是在添加图像时,我不知道如何将 SharePhotoContent 链接到创建的动作。

我的代码是:

ShareOpenGraphAction.Builder actionBuilder = new ShareOpenGraphAction.Builder();

    actionBuilder.setActionType("fbclimbmystats:on_sight"); //name space needed
actionBuilder.putObject("route", fbRoute); 
ShareOpenGraphAction action = actionBuilder.build();

//Create a Bitmap image to add
Bitmap bitmap = null;
if (photoPath !=  null)
bitmap = BitmapFactory.decodeFile(photoPath);


SharePhoto photo = null;
if (bitmap != null)
    photo = new SharePhoto.Builder()
    .setBitmap(bitmap)
    .setUserGenerated(true)
    .build();


ShareContent content;

if (photo!=null)
    content = new SharePhotoContent.Builder()
    .addPhoto(photo)
    .build();

else 
    ShareOpenGraphContent.Builder contentBuilder = new ShareOpenGraphContent.Builder();
    contentBuilder.setPreviewPropertyName("route"); // No namespace here
    contentBuilder.setAction(action);
    content =  contentBuilder.build();

所以如果用户拍了照片,我想在故事中分享它。为此,我创建了一个 SharePhotoContent。但是它没有链接到动作,显示的对话框基本上只是分享照片,这不是重点。

来自 facebook 的文档指出:

要将一本书的图片附加到 books.reads 操作,应用应将图像作为位图加载,并在打开时将其传递给“共享”对话框。

共享对话框显示故事的预览,并使用上面在故事预览中传递的位图,而不是使用对象的图像。

那么我错过了什么?我应该首先使用 ShareOpenGraphContent 启动对话,然后传递 SharePhotoContent 吗?如果是怎么办?

还有关于使用开放图分享用户生成的照片,我需要审查故事吗?

谢谢

【问题讨论】:

【参考方案1】:

文档似乎不正确。这是将图像附加到 OG 共享对话框调用的示例。

private void invokeOGShareDialog(Bitmap bitmap) 

    // Create OG object
    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("og:type", "books.book")
            .putString("og:title", "A Game of Thrones")
            .putString("og:description", "In the frozen wastes to the north of Winterfell, " +
                    "sinister and supernatural forces are mustering.")
            .putString("books:isbn", "0-553-57340-3")
            .build();

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

    // Create an action
    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
            .setActionType("books.reads")
            .putObject("book", object)
            .putPhoto("image", photo)
            .build();

    // Create the content
    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setPreviewPropertyName("book")
            .setAction(action)
            .build();

    ShareDialog.show(this, content);


【讨论】:

好的,它确实有效,但现在图像不会显示为用户生成的。它显示为图表故事旁边的小图片。知道为什么会这样吗?

以上是关于使用 facebook open graph stories v4 将图片附加到操作中的主要内容,如果未能解决你的问题,请参考以下文章