2

我已切换到使用新更新的 Android 版 Facebook SDK。

当我尝试使用新的共享对话框时,上面的消息是在 FacebookException 类中给出的。

为什么会发生这种情况?

这是我正在使用的代码。

OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
            action.setProperty("object", "http://object.url");

FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "appnamespace.action", "object")
                    .build();
uiHelper.trackPendingDialogCall(shareDialog.present());
4

2 回答 2

4

经过数小时的反复试验,我终于弄清楚了。但希望它更简单。Facebook 应该提供代码生成器。

无论如何,我的问题的解决方案是动作词必须与 facebook 设置的完美匹配。看到这一点的唯一方法是在类型的开放图形代码生成器中。

https://developers.facebook.com/apps/ {app-id}/opengraph/types

您可以在操作类型部分的上述链接中找到它。

现在,获取 facebook 提供的命名空间和操作类型,并将其替换为下面的“appnamespace:action”。

OpenGraphAction action = GraphObject.Factory.create(OpenGraphAction.class);
        action.setProperty("object", "http://object.url");

FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(this, action, "appnamespace.action", "object")
                .build();
uiHelper.trackPendingDialogCall(shareDialog.present());
于 2013-09-10T10:52:55.410 回答
0

我相信这个问题与构造函数中的“ previewPropertyName”字段有关OpenGraphActionDialogBuilder

new FacebookDialog.OpenGraphActionDialogBuilder(Activity activity, OpenGraphAction action, String previewPropertyName)

这必须与指向OpenGraphObject自身的操作中的属性名称相匹配。例子

action.setProperty("previewPropertyName", openGraphObject);
于 2013-12-19T10:31:39.510 回答