我正在尝试将自定义故事发布到概念验证 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 等元标记中的值来托管我自己的某种“样本”页面,或者我可以以某种方式直接在帖子中指定值吗?