2013-06-17 5 views
12

Ich habe ein benutzerdefiniertes Objekt namens "Meinung" erstellt, um benutzerdefinierte Geschichten um es zu erstellen.Facebook Javascript SDK Open-Graph: Fehler beim Hinzufügen von benutzerdefinierten Objekten für benutzerdefinierte Storys

Ich versuche, einige app-eigene Objekte von meiner Website mit dem Javascript SDK hinzufügen.

Der Beispielcode facebook gibt mir ist:

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

Der reponse ein Fehler ist (OAuth Exception):

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

Wenn ich den type Parameter entfernen, erhalte ich einen anderen Fehler:

(#100) The parameter object is required 

Gleich, wenn ich [namespace]:opinion aus dem Pfad entfernen.

Ich verstehe nicht warum, und es gibt keine Referenz darüber nach dem googeln.

Warum das? Irgendwelche Ressource, auf die ich mich beziehen kann, um das zu lösen?

Antwort

19

Das Objekt ist eine JSON-codierte Version eines Objekts, der für Sie generierte Beispielcode war falsch. Entfernen Sie auch den Typ aus der Parameterliste.

So etwas wie

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

Ein Beispiel, wie sieht es bei http://philippeharewood.com/facebook/objectify.html zu sehen ist, und es wurde die Locke Beispiel gegeben bei https://developers.facebook.com/docs/opengraph/using-object-api/

+9

Schande über Sie Facebook Dokumente. Dieses Beispiel ist in Facebook-Dokumenten immer noch offiziell. – Freshblood

+0

Nur gedacht, dass ich darauf hinweisen würde, dass ich "/ objects" aus dem ersten Parameter entfernen musste und den Namen "object" im JSON-Objekt durch den Namen meines Facebook-Objekts ersetzen musste. Vielleicht ist das für alle anderen offensichtlich: 0) – craigvl

+0

Ich kann dir nicht genug danken. Der gesamte von Facebook generierte Code und der Code in ihren Dokumenten ist falsch. Ich habe heute 4 Stunden damit verbracht, dieses Problem zu lösen – user2158382

3

Für alle kämpfen mit einem ähnlichen Problem auf iOS basiert weg , scheint der Beispielcode wieder falsch zu sein, jedoch scheint folgendes zu funktionieren:

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