Class: SBIClient::Client
- Inherits:
-
Object
- Object
- SBIClient::Client
- Defined in:
- lib/sbiclient.rb
Overview
クライアント
Constant Summary collapse
- DEFAULT_HOST_NAME =
ホスト名
"https://mobile.sbisec.co.jp/web/visitor/loginUser.do"
Instance Attribute Summary collapse
-
#host_name ⇒ Object
ホスト名.
Class Method Summary collapse
Instance Method Summary collapse
-
#fx_session(userid, password, order_password, options = {}, &block) ⇒ Object
ログインし、セッションを開始します。 -ブロックを指定した場合、引数としてセッションを指定してブロックを実行します。ブロック実行後、ログアウトします。 -そうでない場合、セッションを返却します。この場合、SBIClient::FX::FxSession#logoutを実行しログアウトしてください。.
-
#initialize(proxy = nil) ⇒ Client
constructor
コンストラクタ.
Constructor Details
#initialize(proxy = nil) ⇒ Client
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/sbiclient.rb', line 51 def initialize( proxy=nil ) @client = Mechanize.new {|c| # プロキシ if proxy uri = URI.parse( proxy ) c.set_proxy( uri.host, uri.port ) end } @client.keep_alive = false @client.max_history=0 Mechanize::AGENT_ALIASES["KDDI-CA39"] = \ 'KDDI-CA39 UP.Browser/6.2.0.13.1.5 (GUI) MMP/2.0' @client.user_agent_alias = "KDDI-CA39" @host_name = DEFAULT_HOST_NAME end |
Instance Attribute Details
#host_name ⇒ Object
ホスト名
104 105 106 |
# File 'lib/sbiclient.rb', line 104 def host_name @host_name end |
Class Method Details
.error(page) ⇒ Object
97 98 99 100 101 |
# File 'lib/sbiclient.rb', line 97 def self.error( page ) msgs = page.body.scan( /<[fF][oO][nN][tT]\s+[cC][oO][lL][oO][rR]="?#FF0000"?>([^<]*)</ ).flatten error = !msgs.empty? ? msgs.map{|m| m.strip}.join(",") : page.body raise "operation failed.detail=#{error}".toutf8 end |
Instance Method Details
#fx_session(userid, password, order_password, options = {}, &block) ⇒ Object
ログインし、セッションを開始します。 -ブロックを指定した場合、引数としてセッションを指定してブロックを実行します。ブロック実行後、ログアウトします。 -そうでない場合、セッションを返却します。この場合、SBIClient::FX::FxSession#logoutを実行しログアウトしてください。
- userid
-
ユーザーID
- password
-
パスワード
- order_password
-
取引パスワード
- options
-
オプション
- 戻り値
-
SBIClient::FX::FxSession
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/sbiclient.rb', line 76 def fx_session( userid, password, order_password, ={}, &block ) # ログイン page = @client.get(@host_name) SBIClient::Client.error(page) if page.forms.length <= 0 form = page.forms.first form.username = userid form.password = password result = @client.submit(form, form..first) SBIClient::Client.error(result) unless result.title.toutf8 =~ /SBI証券.*メンバートップ/ session = FX::FxSession.new( @client, order_password, result, ) if block_given? begin yield session ensure session.logout end else return session end end |