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 {
        ...
    }
}];