向Google的服務器發起登錄請求之后,得到了免死金牌token,以后就可以拿著這個token去犯罪,不是,去Google的其它服務取數據,但是在此之前應該第一,從響應的消息中把token找出來;第二,這個token應該想辦法保存起來,以備以后使用。
上一節已經把響應的內容打印了出來,它的格式也很簡單,因此用下面的代碼很容易就可以把響應的內容轉成方便我們使用的形式,即一個map的形式,通過鍵值對來存儲:
function parseResponse(response) {
var responseLines = response.split('\n');
var responseData = {};
for (var i = 0; i < responseLines.length; ++i) {
var split = responseLines[i].indexOf('=');
var key = responseLines[i].substr(0, split);
var value = responseLines[i].substr(split + 1);
responseData[key] = value;
}
return responseData;
};
在我們的相應回調函數里,就可以調用這個函數處理一下響應,從結果中取鍵為”Auth”這一項的值,并保存在Gadget
Host為我們準備好的一個負責持久化的對象options中。找到上一節Main.prototype.login的代碼,把響應的回調函數改成下面的樣子:
xhRequest.onreadystatechange =function(){
if (!xhRequest) {
return;
}
if (xhRequest.readyState != 4) {
return;
}
//調用新寫的函數來解析響應內容
var responseData = parseResponse(xhRequest.responseText);
var token = responseData['Auth'];
//這里來記住已經登錄過的用戶名和密碼
options.putValue("username","mymail2009.test@gmail.com");
options.putValue("password","mymail2009");
options.putValue("token", token);
options.encryptValue("token");
main.onLoginSuccess();
}
最后加的一行main.onLoginSuccess()就是我們下一步動作的起點,在這里應該開始去取用戶mymail2009.test@gmail.com所擁有的相冊信息了,我們先聲明一個空函數放在那里。
Main.prototype.onLoginSuccess=function(){
this.fetchAlbumsInfo();
};
//取相冊信息的函數
Main.prototype.fetchAlbumsInfo=function() {
};
繼續之前多扯兩句options這個對象,這是Gadget Host提供的持久化對象,你可以從代碼中看到它還有對存儲的內容進行加密的功能,Google的文檔中提到這個options對象在后臺實際上是把內容保存在一個XML文件中,當然該文件的位置是不會告訴你的啦,哈哈。
下一節將向Picasa服務發起請求!