我有一个网站。我需要在Facebook上分享内容。我创建了自定义故事"参与参与"各自的行动"参与"和对象"参与"。我的问题是从facebook获得explicit_shared权限,我需要向用户显示要发布的内容。 当我使用下面的FB.api发帖时,它正在成功发布。 方法1:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : "Some App ID",
status : true,
cookie : true,
xfbml : true,
version : 'v2.0',
});
};
// Load the SDK Asynchronously
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
function postFBShare() {
var fbparam= {
"app_id":"Some App ID",
"url":"Some url",
"title":'Some Title',
"image":[
{url:"Some image url"}
],
"description":'',
"explicitly_shared": "true"
};
FB.api(
'https://graph.facebook.com/me/{namespace}:participate ',
'post',
{
engagement: fbparam
},
function(response) {
// handle the response
}
);
}
</script>
<input type="button" value="fb share" onclick="postFBShare();">
方法2: 但要显示用户wht将发布我需要一个对象发布。我写了以下代码来实现这一点。
function preFBAction(videoURL){
var fbparam= {
"app_id":"Some App ID",
"type" : {namespace}:engagement,
"url":"Some url",
"title":'Some Title',
"image":[
{url:"Some image url"}
],
"description":'',
"explicitly_shared": "true"
};
FB.api(
'/app/objects/{namespace}:engagement',
'post',
{
engagement: fbparam
},
function(response) {
// handle the response
if (response && !response.error) {
FB.ui(
{
method: 'share_open_graph',
action_type: '{namespace}:participate ',
action_properties: JSON.stringify({engagement:response.id})
},
function(response) {
// handle the response
}
);
}
}
);
};
方法3: 我尝试只使用FB.ui,但在共享对话框中收到以下错误 &#34;操作至少需要一个参考:您尝试发布的操作无效,因为它未指定任何参考对象。必须至少指定以下属性之一:other。&#34; 我试过的代码是 -
var obj={
method: 'share_open_graph',
action_type: '{namespace}:participate ',
action_properties: {engagement:fbparam}
};
FB.ui(obj,function(response) {
// handle the response
});
因此,如果有人知道如何做到这一点以及我出错的地方,请帮帮忙。 谢谢!
更新
在公共页面上使用og标签我可以在墙上成功发布,也可以在方法2 中发布,如果我使用&#34; / me / objects /.."取代&#34; / app / objects ..&#34;发布gto发布在facebok上,但这次我是在newz feed和活动日志中创建的,这不符合facebook的政策。(类似问题提到here。)