将自定义故事发布到Facebook Open Graph

时间:2013-08-20 17:57:54

标签: facebook-graph-api opengraph facebook-opengraph

我正在尝试将自定义故事发布到概念证明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”的无效值,类型为“参考”

根据我在网上发现的一些代码片段,我尝试将上面的属性“徽章”更改为通用“帖子”(我猜想依靠“类型”值来了解它的发布内容),但随后出现错误说我缺少必要的参数“徽章”。

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

1 个答案:

答案 0 :(得分:2)

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

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

相关问题