0

Ich entwickle Anwendung mit Facebook API. was ich versuche, ist einfach - Holen Sie sich einen Beitrag, und dann erhalten Sie die Anzahl der Likes diesen Beitrag hat.facebook api - verliere mein Zielfernrohr

dann möchte ich die Poststory und ihre Anzahl von Likes kombinieren. später möchte ich es mit einer Schleife machen - Iterieren über eine Reihe von Posts.

mein Problem Erklärung ist in dem Code:

$(function() { 
    $("#mybutton").click(function() { 
     FB.api("/me/posts", function (response) { 
      /* first callback 
      * 
      * i have access to global scope here. 
      */ 

      var firstpost = response.data[0]; 

      FB.api("/" + firstpost.id + "/likes", function (response) { 
       /* second callback inside the first callback 
       * 
       * here i lost my access to the first callback scope. 
       * my access is only to local and global scope. 
       * i can't see anymore what is inside firstpost variable; 
       */ 
       console.log(firstpost); 
       //this will give a reference error 
      }) 
     }) 
    }) 
}); 

vielleicht gibt es einen besseren Weg, es zu tun?

Antwort

1

Sie könnten nur verschiedene Namen für die Antwort-Parameter verwenden, aber es gibt eine viel bessere Möglichkeit, mit nur einem API-Aufruf:

/me/posts?fields=message,likes 

... oder mit dem JS SDK:

FB.api('/me/posts', {fields: 'message,likes'}, function (response) { ... } 
+0

danke. Könntest du bitte erklären, warum die Umbenennung der zweiten "Antwort" letztendlich eine Schließung verursacht hat? – LiranC

+0

wahrscheinlich, weil es nur eine Referenz ist und keine Kopie – luschn

+0

... aber Sie sollten wirklich einen API Anruf für diese – luschn