O Facebook não aceita propriedades personalizadas do Open Graph
Eu estou tentando usar o Facebook iOS SDK 3.5 para publicar uma ação Open Graph. Minha ação é:take
a photo
ephoto
tem um adicional necessáriostring
propriedade nomeadafilter
.
Eu estou criando meu objeto gráfico (todos os valores são válidos e funcionando):
NSMutableDictionary<FBOpenGraphObject> *object =
[FBGraphObject openGraphObjectForPostWithType:@"tonerapp:photo"
title:@"photo"
image:imageData
url:nil
description:title];
Então eu adiciono meu filtro:
object[@"tonerapp:filter"] = filterName;
Eu tento postar o objeto, e posso confirmar que minha propriedade de filtro está lá (habilitado FBSetting comportamento de log para solicitações de URL para mostrar dados de pedido):
Body (w/o attachments):
object: {"description":"","type":"tonerapp:photo",
"tonerapp:filter":"classic","data":{},
"fbsdk:create_object":true,
"image":{"url":"fbstaging:\/\/graph.facebook.com\/staging_resources\/MDExMDE1MjkzNzU1Njc3MDE0MjoxNTM4NzgwNjUy","user_generated":"true"},
"title":"photo"}
Eu posso ver minha propriedade de filtro lá, mas a resposta é esta:
error = {
code = 100;
message = "(#100) Object Missing a Required Value:
Object at URL '' of type 'tonerapp:photo' is invalid because
a required property 'tonerapp:filter' of type 'string' was not provided.";
type = OAuthException;
};
Bem, está lá. Eu tentei todas as combinações possíveis, como:
object[@"data"] = @{@"tonerapp:filter": filterName};
// envolvendo no objeto de dados
object[@"data"] = @{@"filter": filterName};
// envolvendo em dados e removendo namespace
object[@"toner:filter"] = filterName;
// nome do aplicativo em vez do nome do namespace
object[@"filter"] = filterName;
// nenhum nome de namespace
[object setObject:filterName forKey:@"tonerapp:filter"];
// setobject notation
[object setValue:filterName forKey:@"tonerapp:filter"];
// notação setvalue
[object setObject:filterName forKey:@"filter"];
// setobject AND sem namespace ...
e possivelmente mais. Eu tentei de tudo, mas a API sempre falha com o mesmo erro. Posso verificar se o resto do objeto está correto, se eu for ao meu aplicativo no Facebook e definirfilter
Comooptional
ao invés derequired
, posta com sucesso. É um erro / documentação insuficiente com a API do Graph, ou eu sou tão cego que não consigo ver algo óbvio aqui?
Obrigado, pode.