2013-06-17 4 views
12

Ho creato un oggetto personalizzato, chiamato "Opinione" per creare storie personalizzate attorno ad esso.Facebook JavaScript SDK open-graph: errore nell'aggiunta di oggetti personalizzati per storie personalizzate

Sto cercando di aggiungere alcuni oggetti di proprietà dell'app dal mio sito Web utilizzando il sdk di javascript.

Il facebook codice di esempio dà me è:

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 
    } 
); 

Il reponse è un errore (OAuth Exception):

2500: Cannot specify type in both the path and query parameter. 

Se rimuovo il parametro type, ottengo un altro errore:

(#100) The parameter object is required 

Lo stesso se rimuovo [namespace]:opinion dal percorso.

Non capisco perché, e non c'è alcun riferimento a questo dopo averlo fatto su Google.

Perché questo? Qualunque risorsa posso fare riferimento per risolverlo?

risposta

19

L'oggetto è una versione con codifica JSON di un oggetto, il codice di esempio generato per te non era corretto. Rimuovi anche il tipo dall'elenco dei parametri.

Quindi qualcosa di simile,

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 
    } 
); 

Un esempio di come appare può essere visto a http://philippeharewood.com/facebook/objectify.html e si è basato fuori l'esempio ricciolo data al https://developers.facebook.com/docs/opengraph/using-object-api/

+9

Vergognati su Facebook doc. Questo esempio è ancora ufficiale nei documenti di Facebook. – Freshblood

+0

Ho appena pensato che vorrei sottolineare che per far funzionare tutto questo dovevo rimuovere "/ objects" dal primo parametro e sostituire il nome "object" nell'oggetto JSON con il nome del mio oggetto Facebook. Forse questo è ovvio per tutti gli altri: 0) – craigvl

+0

Non posso ringraziarti abbastanza. Tutto il codice generato da Facebook e il codice nei loro documenti non è corretto. Ho passato 4 ore oggi cercando di risolvere questo – user2158382

3

Per tutti coloro alle prese con un problema simile su iOS , il codice di esempio sembra essere sbagliato, tuttavia sembra funzionare come segue:

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