メルカリ/ラクマ用の出品補助ツールを配布し始めて数ヶ月経ちましたが、たまにこんな質問を頂きます。
「複数アカウントで使用できませんか?」
というものです。
※出品補助ツールってなんぞや?という方は以下の記事を参照。
⇒メルカリの自動出品ツール(補助ツール)の配布について
残念ながら複数アカウントに対応させる事は、ブラウザ操作で動かすというツールの仕様上できないんですよねー。
まずはその辺の説明をちょっとさせて頂きます。
■VBAによるブラウザ操作でログイン処理が実装できない理由
PC版のメルカリはログイン画面に画像認証、またはロボットによる自動ログインで無いかどうかのチェック認証が導入されています。
【画像認証】
【ロボット確認】
まず画像認証については実際に目で見て判断して画像を選択しなければいけないので、VBAで自動化するのは私には無理です。
ロボット確認のチェックについては何となくいけそうな雰囲気もしますが、該当部分のソースを確認してみるとこの部分はインラインフレームになっている事が分かります。
インラインフレームについては過去に以下の記事で触れたことはあるのですが・・・
⇒ VBAを使ってフレーム構造のページを操作する①
⇒ VBAを使ってフレーム構造のページを操作する②
インラインフレーム内のページを操作できない条件の一つに「クロスドメインとなる場合」というのがあります。
クロスドメインの細かい説明は省きますが、簡単に言うと現在いるサイト(www.mercari.com)から、そこに埋め込まれている別のサイト(www.google.com)の情報にはアクセスできませんよってことです。
もちろんメルカリを経由しなければアクセスすることは可能です。
具体的には、
1.インラインフレームのsrcの値を取得
2.新規IEを立ち上げ、srcのアドレスに遷移させる
3.立ち上げたIEからhtmlドキュメントにアクセス
という手順です。
しかしこれで認証部分にチェックを入れることが出来たとしても、元々のメルカリのページとは関係が切れている状態のため意味がありません。(そもそも手順2の部分でうまく開かない気もしますが・・・※試してはいません)
つまりDOM操作を駆使してクリックするのは不可能という事ですね。
あ、方法があるとすれば一つ。
以前ラクマで使用したマウス操作系の関数を駆使すればいけそうです。
マウスイベントやキーボードイベント処理はできる限り使用したくないので、あくまでも最終手段ですね。
■有料ツールはどうやってアカウントを切り替えていたのか?
VBAを使ったDOM操作でログイン画面を通過するのは難しいという事は分かりましたが、ここで一つ疑問が。
「有料ツールで実装されていた複数アカウントの切替機能」
ってどうやって実装していたんだろう?という事。
そもそも実物を見た事が無いので、どういう感じでアカウントが切り替わっていたのかが分からないんですよね・・・
本当に切り替えていたのか、実はChromeの拡張機能にあった様な同時ログインを実装していて、見た目上切り替えていただだけなのか。
Chromeの同時ログインのやつもよく仕組みを分かって無いんですけどね。
もしその都度アカウントの切り替え(ログアウト⇒ログイン)を行っていたとすると、画面を触らずに行う方法としてはhttpリクエストを自分(ツール側)で作ってメルカリに投げる位しか思い付かない。
その辺の仕組みは今まで実装したことが無いのであまり知らないのですが、これを機にちょっと触ってみましょうか。
とりあえずの目標は「アカウントの切り替えを実装してみること」でやっていこうと思います。
もしこれが実装できればアカウントの切り替えにも対応できますし、行く行くはブラウザ等の環境に依存しない出品も行える様になりそうですね。
有料ツールが手元にあれば解析できて手っ取り早いのですが、生憎持って無いし金出して買うつもりも無い。
(´-`).。oO(体験版とか落ちてないかなぁ・・・むしろ誰かくれないかなぁ・・・)
という事で次回からログイン時の通信内容を解析していきます!