Не удается опубликовать на временной шкале Facebook: появляется сообщение об ошибке "ОШИБКА (#100) Требуется объект параметра")
У меня есть сайт. Мне нужно поделиться контентом на Facebook. Я создал собственную историю "Участвуй в помолвке" с соответствующим действием "Участвовать" и объектом "Помолвка". Моя проблема в том, чтобы получить разрешение явно_общедоступного аккаунта в Facebook, мне нужно показать пользователю, что собирается публиковать. Когда я публикую сообщения с использованием 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: но чтобы показать пользователю, что собирается публиковать, мне нужен объект для публикации. Я написал следующий код для достижения этой цели.
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, но в диалоговом окне общего доступа появляется следующая ошибка: "Действие требует, по крайней мере, одну ссылку: действие, которое вы пытаетесь опубликовать, недопустимо, поскольку оно не задает никаких ссылочных объектов. По крайней мере, один из должны быть указаны следующие свойства: другое. " Код, который я пробовал
var obj={
method: 'share_open_graph',
action_type: '{namespace}:participate ',
action_properties: {engagement:fbparam}
};
FB.ui(obj,function(response) {
// handle the response
});
Так что, если кто-то знает, как это сделать и где я иду не так, помогите. Спасибо!!
ОБНОВИТЬ
Используя теги og на общедоступной странице, я могу успешно разместить на стене, а также в подходе 2, если я использую "/ me / objects /.." вместо "/ app / objects..". Публикация gto размещена на facebok, но на этот раз я был создан в ленте newz, а также в журнале активности, что не соответствует правилам Facebook (подобная проблема упоминается здесь).