在我对这个主题进行的所有研究中,90%的内容已经过时,这让我相信Facebook JS SDK在明确分享Open Graph故事方面发生了最近的变化。我有以下代码:
function postToFB(desc){
FB.ui({
method: 'share_open_graph',
action_type: 'mynamespace:myaction',
action_properties: JSON.stringify({
myobject: "myobjectid"
})
}, function(response){});
}
这个问题在于它只会尝试与我在应用程序设置的Facebook Open Graph部分中设置的设置共享myobject。我想使用相同的对象,但每次共享时都使用动态的“desc”变量更改描述。有人知道如何实现这一点吗?我可以在我的Facebook Open Graph部分静态设置标题,但我需要每次共享时动态设置它。
我已经搜索了Facebook JS SDK以查找可以添加到action_properties的其他键/值对,但是SDK信息在这方面非常有限。
更新
我修改了代码以包括2个调用,一个用于创建对象,另一个用于发布带有新对象信息的故事。以下是代码:
function postToFB(desc){
FB.api(
'me/objects/mynamespace:myobject',
'post',
{
object: {
"app_id": myappid,
"type": "mynamespace:myobject",
"url": "myurl",
"title": "mytitle",
"image": "myimgurl",
"description": desc
}
},
function(response) {
console.log(response);
FB.ui({
method: 'share_open_graph',
action_type: 'mynamespace:myaction',
action_properties: JSON.stringify({
myobject: response.id
})
}, function(r){});
});
}
然而,根据对这个问题的评论:Facebook对象API - 创建重复对象,一位Facebook工作人员表示这种方式不会被Facebook批准,因为一个用户的一次操作不能生成两篇帖子,而这段代码现在做到了。其中一个将把对象发布到Facebook用户的活动日志中,而另一个则将其发布到活动日志和新闻动态中。
如果我只需要进行一次调用并规定来自FB.ui函数的myobject描述,那就太好了。有人知道如何做到这一点吗?