2013-02-18 12 views
7

Im próbuje wysłać żądanie wsadowego graph api, a uzyskanie błędu w odpowiedzi na drugi wniosek:używając facebook żądanie partii javascript api

"{ 
    "error": { 
     "message": "(#100) Missing message or attachment", 
     "type": "OAuthException", 
     "code": 100 
    } 
}" 

Czy ktoś może mi powiedzieć co robię źle?

Oto kod używam:

var opts = { 
       message : 'Some message', 
       name : 'Post Name', 
       link : 'url', 
       description : 'The post Description', 
       picture : 'url to image' 
      }; 

FB.api('/', 'POST', { 
     batch: [ 
       { method: 'GET', relative_url: 'me/friends'}, 
       { method: "POST",relative_url: "me/feed", body : opts } 
     ] 
     }, function (response) { 
       console.log(response); 
     }); 
+0

Wydaje mi się, że musisz uwierzytelnić swoje żądanie w pewien sposób podczas używania/uzyskiwania dostępu do niektórych części interfejsu FB Graph API. OAuthException wydaje się wskazywać na błąd autoryzacji. – kjetilh

+0

Pierwsza prośba przebiega bezbłędnie, drugie żądanie otrzymuje błąd. Nawet jeśli robię to w oddzielnym żądaniu API, działa FB.api ("/ me/feed", "post", opts, function (odpowiedź) {if (reakcja || response.error) { } inny { } !}); –

+0

Znaleźliśmy problem i rozwiązanie: pole ciała. Powinno to zostać sformatowane jako surowy ciąg znaków HTTP POST, podobnie jak ciąg zapytania adresu URL https://github.com/jgorset/facepy/issues/55 –

Odpowiedz

12

jak Sharon powiedział, trzeba umieścić ciało w polu url zakodowany sposób.

Można zrobić to proste z jQuery, jak:

var opts = { 
       message : 'Some message', 
       name : 'Post Name', 
       link : 'url', 
       description : 'The post Description', 
       picture : 'url to image' 
      }; 

FB.api('/', 'POST', { 
     batch: [ 
       { method: 'GET', relative_url: 'me/friends'}, 
       { method: "POST",relative_url: "me/feed", body : $.param(opts) } 
     ] 
     }, function (response) { 
       console.log(response); 
     }); 

działa dobrze.

Powiązane problemy