0

我正在尝试将自定义故事发布到概念验证 Facebook 应用程序,由对象类型“徽章”和操作类型“赚取”组成。当我在 Facebook Open Graph Types 界面中为此“获取代码”时,Graph Explorer 示例成功地将故事发布到我的时间线。但是,一个参数(“徽章”)是对 OG 样本的 URL 引用。

我怎样才能直接发布一些东西,而不是作为 OG 样本的参考?

使用 C# SDK,我目前正在尝试这个:

var client = new FacebookClient();
client.AccessToken = tokenResult.access_token;

dynamic parameters = new ExpandoObject();
parameters.badge = @"
    {
        ""app_id"" : [my app ID],
        ""title"" : ""Widget Badge"",
        ""image"" : ""[a public image URL]"",
        ""url"" : ""[a public website URL]"",
        ""type"" : ""[my custom namespace]:badge""
    }
    ";

var result = client.Post("/me/[my custom namespace]:earn", parameters);

但是,我从 Facebook 回来的例外是:

“[上述 JSON]”是“参考”类型的属性“徽章”的无效值

按照我在网上找到的一些代码片段,我尝试将上面的属性“badge”更改为通用“post”(我猜想依靠“type”值来知道它发布的内容),但随后错误说我我缺少必需的参数“徽章”。

在这种情况下,我没有找到任何可以告诉我“参考”类型是什么的东西,尽管我可能只是忽略了一些东西。在原始示例中,它是 OG 示例的 URL,但我假设我们可以发布自定义内容而不仅仅是示例。我是否需要使用 OG Samples 等元标记中的值来托管我自己的某种“样本”页面,或者我可以以某种方式直接在帖子中指定值吗?

4

1 回答 1

2

要使用对象发布操作,您需要提供该对象的 url。但是如果您在自己的应用程序上没有此 url(您的应用程序没有每个对象的网页),那么您可以创建由 facebook 直接托管的对象,并且 url 将使用生成的 id目的。为此,您需要使用对象 API:https ://developers.facebook.com/docs/opengraph/using-object-api/

提供 json 数据,它将在 facebook opengraph 中创建对象,返回它的 id(所以你有 url),然后你就可以发布你的操作

于 2013-08-21T14:14:16.330 回答