我正在使用正式的Facebook .NET SDK发布music.listens操作,下面的代码。
var result = facebook.Post("me/music.listens", new
{
song = new
{
type = "music.song",
url = "www.example.com/blabla",
title = "Womanizer",
image = "www.example.com/blabla",
description = "Bu kısma açıklama gelecek",
musician = new
{
type = "profile",
title = "Britney Spears",
image = "www.example.com/blabla",
url = "www.example.com/blabla",
description = "Here is great song"
}
}
})此代码按以下格式发布侦听活动。
“约翰在MySiteName上听了女人的歌。”
但是,Pandora.com以下面的格式以艺术家信息发布该活动。
“约翰在潘多拉听布兰妮·斯皮尔斯的”女人“。
这种格式正是我所期望的。它还通过显示艺术家的照片和描述来显示艺术家名称上的工具提示。由于这个原因,我在参数中传递了音乐家的信息,但是Facebook似乎忽略了这个参数。
我怎么能像潘多拉那样表现音乐聆听动作,或者传递参数有什么问题?
发布于 2014-01-24 09:27:08
我没有使用官方的HTTP来做您正在做的事情,但是我使用了直接的HTTP调用来完成这个任务。FacebookOpenGraph对于歌曲和音乐家对象需要一个“参考对象”,而不是将数据作为参数传递。这些“参考对象”只是带有特殊元数据的网页。
在我的情况下,我有一个网络服务器,托管歌曲和音乐家元数据的Facebook开放图形格式,如他们的文档所描述的。然后我做了一首me/ musician。听帖子传递歌曲的url和音乐家的url。
因此,您需要的不是将所有原始数据作为参数传递,而是需要一个托管所有元数据的网站。
如果您查看这里的文档,您将看到一些示例https://developers.facebook.com/docs/reference/opengraph/action-type/music.listens
如果您转到http://samples.ogp.me/461258627226537并查看源,您可以看到歌曲的一个示例元数据。
例如,下面是他们的php示例(抱歉,他们没有.NET示例)
/* make the API call */
$response = $facebook->api(
"/me/music.listens",
"POST",
array (
'song' => 'http://samples.ogp.me/461258627226537',
'musician' => 'http://samples.ogp.me/390580850990722',
)
);
/* handle the result */https://stackoverflow.com/questions/21320700
复制相似问题