HTTPSを使ってGoogle AuthSubを利用する 23:15

Net::HTTPを使うので、twitter API使った時とあまり代わり映えしないけど、メモ。
Google AuthSubを利用してみる。とりあえずSIDなどを取得。
クライアントアプリからの利用法。

require 'net/https'
require 'uri'

GAUTH_URI = 'https://www.google.com/accounts/ClientLogin'
Email = '******'
Pass  = '******'

url = URI.parse(GAUTH_URI)
Net::HTTP.version_1_2
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true if url.scheme == "https"
https.ca_file = 'base64.cer'
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.verify_depth = 5

req = Net::HTTP::Post.new(url.path)
req.form_data = {
  "accountType" => 'HOSTED_OR_GOOGLE',
  "service" => 'xapi',
  "Email" => Email,
  "Passwd" => Pass,
  "source" => 'testApp',
  "Content-type" => 'application/x-www-form-urlencoded'
}

res = https.start {|h|
  h.request(req)
}

puts res

https.ca_fileで証明書ファイルを使用しているけど、なくてもなぜか取得できた。
証明書の取得方法は下記の参考サイトをご覧ください。

参考サイト:


Authentication for Installed Applications - Account Authentication API - Google Code
http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html


rubyssl通信 - 茶国 Rev3
http://d.hatena.ne.jp/chakoku/20070609/1181322149


[Ruby]HTTPSでサーバーに接続 - うなの日記
http://d.hatena.ne.jp/unageanu/20070504