将自定义故事发布到 Facebook Open Graph
Posted
技术标签:
【中文标题】将自定义故事发布到 Facebook Open Graph【英文标题】:Posting a Custom Story to Facebook Open Graph 【发布时间】:2013-08-20 17:57:53 【问题描述】:我正在尝试将自定义故事发布到概念验证 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]”是类型为“Reference”的属性“badge”的无效值
按照我在网上找到的一些代码 sn-ps,我尝试将上面的属性“badge”更改为通用“post”(我猜想依靠“type”值来了解它发布的内容),但随后该错误表明我缺少必需的参数“badge”。
我没有找到任何可以告诉我在这种情况下“参考”类型是什么的东西,尽管我可能只是忽略了一些东西。在原始示例中,它是 OG 示例的 URL,但我假设我们可以发布自定义内容而不仅仅是示例。我是否需要使用 OG Samples 等元标记中的值来托管自己的某种“示例”页面,或者我可以直接在帖子中指定值吗?
【问题讨论】:
【参考方案1】:要使用对象发布操作,您需要提供该对象的 url。 但是如果您在自己的应用程序上没有此 url(您的应用程序没有每个对象的网页),那么您可以创建由 facebook 直接托管的对象,并且 url 将使用生成的 id目的。 为此,您需要使用 Object API:https://developers.facebook.com/docs/opengraph/using-object-api/
提供 json 数据,它将在 facebook opengraph 中创建对象,返回它的 id(所以你有 url),然后你就可以发布你的操作了
【讨论】:
我在活动提要中的自定义操作故事中注意到了一件有趣的事情...对象名称和应用程序名称(“大卫通过 [应用程序名称] 获得 [对象名称]”)都是返回到我的应用程序中的回调 URL 的链接,其中包含我不认识的各种参数。是否有关于这些是什么以及我的网站应该如何响应它们的参考?以上是关于将自定义故事发布到 Facebook Open Graph的主要内容,如果未能解决你的问题,请参考以下文章
Facebook Open Graph Stories api v4.0