Sto tentando di utilizzare Facebook iOS SDK 3.5 per pubblicare un'azione Open Graph. La mia azione è: take
a photo
e photo
ha una proprietà aggiuntiva string
denominata filter
.Facebook non accetta proprietà Open Graph personalizzate
sto creando il mio oggetto grafico (tutti i valori sono validi e di lavoro):
NSMutableDictionary<FBOpenGraphObject> *object =
[FBGraphObject openGraphObjectForPostWithType:@"tonerapp:photo"
title:@"photo"
image:imageData
url:nil
description:title];
poi aggiungo il mio filtro:
object[@"tonerapp:filter"] = filterName;
cerco di inviare l'oggetto, ed io posso confermare che la proprietà del mio filtro è presente (abilitato il comportamento di registrazione di FBSetting per le richieste URL per mostrare i dati della richiesta):
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"}
posso vedere la mia proprietà filtro lì, ma la risposta è questa:
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;
};
Beh, è lì. Ho provato tutte le combinazioni possibili, quali:
object[@"data"] = @{@"tonerapp:filter": filterName};
// involucro nei dati oggetto
object[@"data"] = @{@"filter": filterName};
// involucro in dati e la rimozione dello spazio dei nomi
object[@"toner:filter"] = filterName;
// nome dell'applicazione invece del nome del namespace
object[@"filter"] = filterName;
// nessun nome del namespace
[object setObject:filterName forKey:@"tonerapp:filter"];
// setobject notation
[object setValue:filterName forKey:@"tonerapp:filter"];
// setvalue notazione
[object setObject:filterName forKey:@"filter"];
// setObject e senza namespace ...
e forse più. Ho provato tutto, ma l'API fallisce sempre con lo stesso errore. Posso verificare che il resto dell'oggetto sia corretto, se apro la mia app in Facebook e imposta filter
come optional
anziché required
, invia correttamente. È un bug/documentazione insufficiente con l'API Graph o sono così cieco da non riuscire a vedere qualcosa di ovvio?
Grazie, Can.
avete risolto questo problema? (Ho avuto un problema simile a me stesso: http://stackoverflow.com/q/20376634/824515) – Magnus
da quello che ricordo, (è passato un po 'di tempo e ho dimenticato di rispondere alla mia stessa domanda allora) sulla proprietà dell'URL. la descrizione dell'errore era fuorviante.ho usato '[FBGraphObject openGraphObjectForPostWithType: @" tonerapp: photo " title: title image: imageData url: @" http://tonerapp.info " descrizione: desc];' e funziona. prova a inserire un URL durante la pubblicazione. –
@Magnus per favore dimmi se risolve il problema in modo da poter aggiungere una risposta, forse è possibile aggiungere una risposta direttamente qui sotto. –