Airで というよりも jqueryで というほうが正しいきもしますが、
seo-webmasterではRESTでGoogleにログインするわけですが、
実装はこんなかんじの雑なソースになっております。
var auth_url = "https://www.google.com/accounts/ClientLogin";
var auth_id = $("#auth_id").val(); //フォームのIDを取得
var auth_pass = $("#auth_pass").val(); //フォームのパスワードを取得
$.ajax({
url : auth_url,
type : "POST",
data : {"accountType":"GOOGLE","Email":auth_id,"Passwd":auth_pass,"service":"サービス名","source":"ソース名"},
error : function(XMLHttpRequest, textStatus, errorThrown){
//エラー処理
},
success: function(rs) {
var token = rs.match(/Auth=([a-zA-Z0-9_\-]+)/); //ここでトークンを切り出して保存する
$('#SITE-TOKEN').val(token[1]);
}
});
これはPOSTなので、いいのですが、次はサイトの認証。
こっちはPUTを使います。
var webmaster_url = "https://www.google.com/webmasters/tools/feeds/sites/" + encodeURIComponent(サイトID).replace(/\./g,"%2E");
var token = $('#SITE-TOKEN').val()//認証トークン;
//送信するXMLを生成する
var xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:wt='http://schemas.google.com/webmasters/tools/2007'><atom:id>" + site_id + "</atom:id><atom:category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/webmasters/tools/2007#site-info'/><wt:verification-method type='htmlpage' in-use='true'/></atom:entry>";
$.ajax({
url : webmaster_url,
type : "PUT",
processData : false, //デフォルトがtrueなので必ずきってく
dataType:"xml", //なくても動いたけど一応 受信コンテンツタイプの指定
contentType : "application/atom+xml; charset=UTF-8", //コンテンツタイプXMLにしないとデフォルトが urlencodedなのでエラーになる
data: xml, //送信xml
beforeSend : function(req) {
//ログイン時の認証トークンを送る
req.setRequestHeader('Authorization', 'GoogleLogin auth=' + token);
},
error : function(XMLHttpRequest, textStatus, errorThrown){
//エラー処理
},
success: function(rs) {
//成功時の処理
}
});
ポイントとしては processData をきることと、
contentType をちゃんとatom+xmlにすること、
それからbeforeSendでsetRequestHeaderにトークンを埋め込むことかなー
ここらへんのリファレンスみたいなのがあんまなくて(読みかたがわからないだけかも)
適当に大文字にしたり小文字にしたり半角スペース入れたり
してたら通った感じなので、もしかしたら間違ってるかも。
AirでGoogle認証を使うならこんなかんじで試してみてください。