Dan*_*aco 5 facebook facebook-graph-api facebook-javascript-sdk fb.ui facebook-opengraph
在我关于这个主题的所有研究中,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){});
}
Run Code Online (Sandbox Code Playgroud)
这个问题是,它将尝试仅使用我在应用程序设置的Facebook Open Graph部分设置的设置来共享myobject.我想使用相同的对象,但每次共享时都用动态'desc'变量更改描述.有谁知道如何做到这一点?我可以在我的应用程序设置的Facebook Open Graph部分中静态设置标题,但我需要在每次共享时动态设置它.
我已经在Facebook JS SDK中搜索了可以添加到action_properties的其他键/值对,但SDK信息在这方面非常有限.
UPDATE
我修改了代码以包含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){});
});
}
Run Code Online (Sandbox Code Playgroud)
然而,根据对这个问题的评论: Facebook对象API - 创建一个Facebook工作人员的重复对象表示这种方法不会被Facebook批准,因为用户的一个动作不能产生两个帖子,这个代码现在可以做到.一个人将该对象发布到Facebook用户的活动日志,并将其发布到活动日志和新闻源.
如果我只能进行一次调用并从FB.ui函数本身规定myobject描述应该是什么,那将是很好的.有谁知道如何做到这一点?
我想到了.我遇到的主要问题是我张贴到我/对象时,我应该已经张贴到应用程序/对象(这将创建对象,但没有发布事件)(这将事件发布到用户的活动日志).由于发布到app/anything需要访问令牌,我不得不在PHP中将服务器端的初始调用更改为:
$request = new FacebookRequest(
null,
'POST',
'/app/objects/mynamespace:myobject',
array(
'access_token' => 'myaccesstoken',
'object' => json_encode(array(
'app_id' => myappid,
'url' => 'myurl',
'title' => 'mytitle',
'image' => 'myimg',
'description' => 'mydesc'
))
)
);
$response = $request->execute();
$obj = $response->getGraphObject();
echo $obj->getProperty('id');
Run Code Online (Sandbox Code Playgroud)
从那里我可以使用JS脚本将带有新ID的对象发布到用户的feed.
希望能阻止你花2天半的时间试图像我一样自己解决问题.
归档时间: |
|
查看次数: |
3752 次 |
最近记录: |