将自定义故事发布到 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的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 webpack 以将自定义字体加载到故事书中?

将自定义库导入故事书

Facebook Open Graph,提交故事评论

Facebook Open Graph Stories api v4.0

Facebook iOS SDK 4.2.0 - 分享自托管 Open Graph 故事时出错

是否可以通过常用操作在 Open Graph 故事中添加自定义参数?