2011-10-08 11 views
6

w Theres facebook FQL ten kodJak mogę facebook wsadowy FQL w java

https://developers.facebook.com/docs/reference/api/batch/ 


curl \ 
    -F 'access_token=…' \ 
    -F 'batch=[ \ 
      {"method": "GET", "relative_url": "me"}, \ 
      {"method": "GET", "relative_url": "me/friends?limit=50"} \ 
     ]'\ 
    https://graph.facebook.com 

to przypuszczać, aby być wysłany z json ale ja naprawdę nie rozumiem, jak to zrobić pomocy?

dzięki

+0

Czy możesz być dokładniejszy w swoim pytaniu? co próbowaliście, czego się spodziewaliście i jaki był rezultat? czy próbowałeś powyższego polecenia? czy to się nie udało? czy masz zainstalowany curl? czy zareagował? co dostałeś? jaki komunikat o błędzie widzisz? –

Odpowiedz

3

Można prosty Użyj BatchFB api jego bardzo mocny i łatwy, nie trzeba zajmować będzie wszystkie te rzeczy i używać FQL na przykład, aby uzyskać wszystkie znajomym

Later<ArrayNode> friendsArrayList = this.Batcher.query("SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"); 
    for (JsonNode friend : friendsArrayList.get()) { 
      ....... 
     } 

i jego zestawienie

2

wierzę Twoje pytanie jest w jaki sposób wykonać żądanie wsadowy używając Facebook Graph API. Do tego trzeba wysłać żądanie POST do

"https://graph.facebook.com" 

i dane pocztowe mają być wysłane powinny być

"batch=[{'method': 'GET', 'relative_url': 'me'}, {'method': 'GET', 'relative_url': 'me/friends?limit=50'}]&[email protected]" 

w przypadku [@accesstoken należy wymienić z wartością tokenu dostępu].

Żądanie to zwróci dane właściciela tokena dostępowego (zwykle bieżącego zalogowanego użytkownika) oraz listę 50 znajomych z Facebooka (zawiera pola id i nazwisko) użytkownika wraz z nagłówkami stron (można pominąć).

Nie jestem pewien, czy chodziło Ci o Javę czy Javascript. Proszę na tym konkretnie.

Zasadniczo jestem programistą C#. Zapewni ci kod do wykonania powyższego żądania w C# tutaj.

WebRequest webRequest = WebRequest.Create("https://graph.facebook.com"); 
webRequest.Method = "POST"; 
webRequest.ContentType = "application/x-www-form-UrlEncoded"; 
byte[] buffer = Encoding.UTF8.GetBytes("batch=[{'method': 'GET', 'relative_url': 'me'}, {'method': 'GET', 'relative_url': 'me/friends?limit=50'}]&[email protected]"); 
webRequest.ContentLength = buffer.Length; 
using (Stream stream = webRequest.GetRequestStream()) 
{ 
    stream.Write(buffer, 0, buffer.Length); 
    using (WebResponse webResponse = webRequest.GetResponse()) 
    { 
     if (webResponse != null) 
     { 
      using (StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8)) 
      { 
       string data = streamReader.ReadToEnd(); 
      } 
     } 
    } 
} 

Tutaj zmienne dane będzie zawierać wynik.

1

Salah, tutaj jest przykład, którego używam jako odniesienia, przykro mi, ale nie pamiętam, gdzie znalazłem.

FB.api("/", "POST", { 
    access_token:"MY_APPLICATION_ACCESS_TOKEN", 
    batch:[ 
     { 
      "method":"GET", 
      "name":"get-photos", 
      "omit_response_on_success": true, 
      "relative_url":"MY_ALBUM_ID/photos" 
     }, 
     { 
      "method": "GET", 
      "depends_on":"get-photos", 
      "relative_url":"{result=get-photos:$.data[0].id}/likes" 
     } 
    ] 
}, function(response) { 
    if (!response || response.error) { 
     console.log(response.error_description); 
    } else {  
     /* Iterate through each Response */ 
     for(var i=0,l=response.length; i<l; i++) { 
      /* If we have set 'omit_response_on_success' to true in the Request, the Response value will be null, so continue to the next iteration */ 
      if(response[i] === null) continue; 
      /* Else we are expecting a Response Body Object in JSON, so decode this */ 
      var responseBody = JSON.parse(response[i].body); 
      /* If the Response Body includes an Error Object, handle the Error */ 
      if(responseBody.error) { 
       // do something useful here 
       console.log(responseBody.error.message); 
      } 
      /* Else handle the data Object */ 
      else { 
       // do something useful here 
       console.log(responseBody.data); 
      } 
     } 
    } 
}); 
Powiązane problemy