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