Firefox Extension을 빌드하고 그래프 api를 사용하고 있습니다. 아무도 각 파이어 폭스 세션에서 확장 기능을 사용하지 않기 때문에, https://stackoverflow.com/questions/10301146/facebook-login-within-a-firefox-add-on요구에 따라 Facebook Access Token을 잡아라. 그러나 어떻게?
이 잘하지만 종류의 바보 작동합니다 같은 브라우저를 시작하는 동안이 순간 나는 각 사용자의 액세스 토큰을 잡을 수있어. 그래서 내가하려는 것은 액세스 토큰을 잡거나 블라디미르 팔란트가 요구하는 방식을보다 정확하게 호출하는 것입니다. 내 코드는 getAccessToken()이 언급 된 메소드 인 반면에 이렇게 보입니다.
onLoad: function(){
var NoteHandler = window.arguments[0];
var sjcl = NoteHandler.sjcl;
NoteHandler.getAccessToken();
decryptionDialog.noteHandler = NoteHandler;
decryptionDialog.sjcl = sjcl;
var currID = decryptionDialog.getID();
if(currID==""){
window.close();
return false;
}else{
http_request = new XMLHttpRequest();
http_request.open('Get', 'https://graph.facebook.com/'+currID+'/notes?access_token='+NoteHandler.token, false);
http_request.overrideMimeType("text/json");
http_request.send(null);
decryptionDialog.value = decryptionDialog.ResponseToArray(http_request.responseText);
....
그러나 getAccessToken()가 여전히 액세스 토큰 기다리는 동안 문제가의에 onLoad() - 방법 기다려 계속되지 않습니다. 따라서 요청이 전송되는 동안 NoteHandler.token은 null입니다. 누구나 아이디어를 가지고 있습니까, 왜냐하면 저는 상대적으로 자바 스크립트가 새로 도입 되었기 때문입니다.
감사합니다. 나는 하나의 funktion을 움직여야했지만 지금은 효과가있다! 모든 콜백 방법이 (나 같은 10 분 전) 모르겠지만, 나는 다음과 같이 권하고 싶습니다 : http://recurial.com/programming/understanding-callback-functions-in-javascript/ – Manu
후속 질문 : i 다른 장소에서 동일한 절차를 수행하십시오. 사용자가 xul 대화 상자를 가져오고 새 대화 상자를 가져 오는 버튼이 있습니다. 이제 콜백 함수로 액세스 토큰을 잡으려고 시도한 다음 액세스 토큰이있는 대화 상자를 매개 변수로 엽니 다. Problem : checkDone() 메소드는 한 번만 작동합니다. 그 후에 나는 이전 대화 상자를 닫아야하고 작동합니다. 그러나 이것은 내가 원하는 것이 아닙니다! 내가 놓친 게 무엇입니까? oO – Manu