使用 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 将图片附加到操作中的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Open Graph 发布带有对象的操作

Facebook Open Graph 对象忽略属性

html Facebook Open Graph元标记

Facebook Chat Open Graph 图像代码解析

使用带有地图附件的 Facebook Open Graph Story (GeoPoint)

是否可以使用 Feed 对话框和直接 URL 发布 Facebook Open Graph Story?