Facebook Javascript SDK open-graph: ошибка добавления пользовательских объектов для пользовательских историй
Я создал пользовательский объект под названием "Мнение", чтобы создавать собственные истории вокруг него.
Я пытаюсь добавить некоторые объекты, принадлежащие приложениям, с моего сайта, используя javascript sdk.
Образец кода facebook дает мне следующее:
FB.api(
'me/objects/[namespace]:opinion',
'post',
{
app_id: xxxxxxxx,
type: "[namespace]:opinion",
url: "http://samples.ogp.me/331257847005141",
title: "Sample Opinion",
image: "https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png",
description: ""
},
function(response) {
// handle the response
}
);
Ответ - ошибка (исключение OAuth):
2500: Cannot specify type in both the path and query parameter.
Если я удалю параметр type
, я получаю еще одну ошибку:
(#100) The parameter object is required
То же самое, если я удаляю [namespace]:opinion
из пути.
Я не понимаю, почему, и нет никаких ссылок на это после того, как он запустил его.
Почему это? Любой ресурс, на который я могу ссылаться, разрешает это?
Ответы
Ответ 1
Объект является JSON-кодированной версией объекта, код примера, сгенерированный для вас, был неправильным. Также удалите тип из списка параметров.
Итак, что-то вроде
FB.api(
'me/objects/[namespace]:opinion',
'post',
{
object: {"app_id":xxx,"url":"http:\/\/samples.ogp.me\/331257847005141","title":"\"Sample Opinion\"","image":"https:\/\/s-static.ak.fbcdn.net\/images\/devsite\/attachment_blank.png","description":"\"\""}
},
function(response) {
// handle the response
}
);
Пример того, как он выглядит, можно увидеть на http://philippeharewood.com/facebook/objectify.html, и он был основан на примере скручивания, приведенном в https://developers.facebook.com/docs/opengraph/using-object-api/
Ответ 2
Для тех, кто борется с подобной проблемой в iOS, пример кода снова кажется неправильным, однако, похоже, работает следующее:
NSMutableDictionary<FBOpenGraphObject> *object =
[FBGraphObject openGraphObjectForPostWithType:@"<appnamespace>:<objecttype>"
title:@"..."
image:[result objectForKey:@"uri"]
url:nil
description:@"..."];
[FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
// handle the result
if ( error ) {
DLog(@"error %@ creating object", error);
} else {
...
}
}];