Created
November 15, 2012 05:52
-
-
Save mogya/4076862 to your computer and use it in GitHub Desktop.
モバイラーズオアシス 電源マップAPIの利用サンプル
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- encoding: utf-8 -*- | |
require 'net/smtp' | |
require 'kconv' | |
require "open-uri" | |
require "json" | |
#メール関連の設定。 プログラムを使う人の環境に応じて適切に書き換えてください | |
from_addr = '※※※※' # 送信元のメールアドレスを設定。 | |
mailserver={} | |
mailserver[:server] = 'localhost' | |
mailserver[:port] = 25 | |
# gmailのメールサーバを使う場合 | |
#mailserver[:user] = '※※※※' #gmailのユーザー名 | |
#mailserver[:pass] = '#※※※' #gmailのパスワード(gmailのSMTPサーバをつかってメールを送るために必要) | |
#mailserver[:server] = 'smtp.gmail.com' | |
#mailserver[:port] = 587 | |
#引数の取得 | |
lat,lng = ARGV[0].to_f,ARGV[1].to_f if (ARGV.size>1) | |
to_addr = ARGV[2] if (ARGV.size[2]) | |
if !(lat && lng && to_addr) | |
STDERR.puts("lat lng to_addrを指定してください") | |
exit | |
end | |
#モバイラーズオアシスAPIを呼び出す | |
mo_api_url = sprintf('http://oasis.mogya.com/api/v0/map?lat=%.5f&lng=%.5f&tag=%%E9%%9B%%BB%%E6%%BA%%90OK',lat,lng) | |
STDERR.puts("accessing #{mo_api_url}") | |
ret = JSON.parse(open(mo_api_url).read) | |
#結果を取得 | |
if('ZERO_RESULTS'==ret['status']) #スポットが見つからなかったとき | |
STDERR.puts( "電源のあるお店は見つかりませんでした(><)" ) | |
exit | |
end | |
if('OK'!=ret['status']) #ZERO_RESULTS以外のエラー | |
STDERR.puts("error") | |
STDERR.puts(ret['status']) | |
STDERR.puts(ret['message']) if ret['message'] | |
exit | |
end | |
map_url = ret['url'] #このURLが、モバイラーズオアシスでの結果を表示するURLです。 | |
subject = "電源マップ" #メールタイトル | |
body = "ごしゅじんさまが今おられるあたりの電源マップですよ!\n"+map_url #メール本文 | |
#メールを送る | |
STDERR.puts("sending mail...") | |
header = {} | |
header['Date'] = Time::now.strftime("%a, %d %b %Y %X") | |
header['From'] = from_addr | |
header['To'] = to_addr | |
header['Subject'] = subject.tojis.force_encoding('binary') | |
header['MimeVersion'] = '1.0' | |
header['Content-Type'] = 'text/plain; charset=iso-2022-jp' | |
mailsrc = '' | |
header.each_pair{|k,v| | |
mailsrc = mailsrc+"#{k}:#{v}\n" | |
} | |
mailsrc = mailsrc+"\n#{body.tojis.force_encoding('binary')}" | |
if (587==mailserver[:port]) | |
smtp = Net::SMTP.new(mailserver[:server], mailserver[:port]) | |
smtp.enable_starttls | |
smtp.start('localhost.localdomain', mailserver[:user], mailserver[:pass], :plain) do |connection| | |
connection.send_message(mailsrc , from_addr, to_addr) | |
end | |
else | |
Net::SMTP.start(mailserver[:server], mailserver[:port]) do |connection| | |
connection.send_message(mailsrc , from_addr, to_addr) | |
end | |
end | |
STDERR.puts("done.") | |
# 参考:RubyでGMailを使ってメールを送信する (2) - Ruby 1.9.2 + charset='utf-8' & charset='iso-2022-jp' - 会長@腹部日記(2010-12-22) : | |
# http://www.tamoot.net/d/20101222.html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment