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服务发起请求!