Firefox拡張機能を構築し、グラフAPIを使用しています。現時点では、次のようなブラウザの起動中に各ユーザーのアクセストークンをキャッチします: https ://stackoverflow.com/questions/10301146/facebook-login-within-a-firefox-add-on
これは問題なく動作しますが、Firefoxの各セッションで誰も拡張機能を使用しないため、ちょっとばかげています。だから私がやろうとしているのは、アクセストークンをキャッチするか、より正確にはWladimirPalantがオンデマンドで推奨するメソッドを呼び出すことです。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になります。私はjavascriptに比較的慣れていないので、誰かがアイデアを持っていますか?