26 LINE送信(ISA)

スマホアプリのLINEにPC版があるのをご存じですか?

PC版LINEをインストールしていれば、ロボットからLINEを操作することができます。

PC版LINEの操作は、Desktop Automation(以下 DA)を使って行います。DAの使い方は「15 DAを使ってみよう」にも記載していますので、もしここで行き詰まったらそちらも参考にしてくださいね (*’ω’*)

 ※DAのインストールと設定は「14 DAをインストールしよう」を参照してください。
 ※DAエディターの操作は「24 組込Chromium(その1)」と「25 組込Chromium(その2)」にも記載しています。


【1】ISAとは

実は、DAからLINEを操作するには少し工夫が必要です。

なぜかというと、DAはLINEのボタン位置やテキスト位置をうまく認識してくれないからです。

そこで登場するのが、ISA!!これは、インテリジェント・スクリーン・オートメーション(Intelligent Screen Automation)といって、指定されたアプリケーションのUI要素(ボタン、アイコン、テキストボックスなど)を自動的に判断する拡張イメージ検索機能と画面認識機能です。


はい、難しいーーーっ。こういうときは、実際にやってみるのが一番です!!


【2】ロボットを作成する

【2-1】ロボットを新規作成して変数を追加する

(1)新規または既存のプロジェクトに、[LINE送信.type]を作成し、変数を追加します。

《追加する変数》

名前種類デフォルト値
宛先Short Text(LINEの宛先)
メッセージLong Text(送信するメッセージ)


(2)次に、ロボット[LINE送信ロボ.robot]を作成して、タイプ[LINE送信]を追加します。


【2-2】デバイスマッピングを作成する

(1)[ロボットの設定]の[デザインモード実行]を[スマート実行(フル)]に変更します。

 ※[デザインモード実行]>[スマート実行(フル)]はDAを使うときのお約束です。



(2)プロジェクトを右クリック→[新規作成]→[オートメーションデバイスマッピング]をクリックします。

そして、表示されたダイアログにデバイスマッピングの名前や接続先などを設定します。

 ※デバイスマッピングの作成は「15 DAを使ってみよう」に詳しく記載しています。



【2-3】DAステップを追加する

(1)ロボットビューに新しいアクションステップを追加して、[アクション]は[Desktop Automation]を選択します。[必要なデバイス]は[スタティックリファレンス]の[local_pc]を選択してください。


(2)デスクトップ画面が操作しやすいように、DSの画面を小さくして右端に寄せてください。そして、デスクトップ画面にはLINEのアイコンを作成しておいてください。

準備ができたら、[Desktop Automation]ステップの[ワークフロー]の[編集]をクリックします。


【2-4】LINEを起動する(DA)

(1)エディター画面が表示されたら、画面を小さくして右端に寄せてください。

ではまず、LINEを起動する処理を作成します。

レコーダー・ビューの[Program Manager]タブをクリックすると、デスクトップ画面が表示されますので、LINEのアイコンを右クリック→[クリック]→[ダブルクリック]をクリックします。

そして、[ステップオーバー]ボタンをクリックして処理を実行してください。


(2)LINEが起動したら、レコーダー・ビューの[LINE]タブをクリックし、[再開]ボタンをクリックします。


すると、レコーダー・ビューにLINEの画面が表示されます。


(3)次に、LINEの友だち一覧を表示します。

まず、レコーダー・ビューの[LINE]タブを右クリック→[ツリーモード]→[ISA]をクリックしてください。


そして、再度[再開]ボタンをクリックします。


(4)ツリーモードがISAに変更されると、LINEの[友だち]ボタンが認識できるようになります。


では、レコーダー・ビューの[友だち]ボタンを右クリック→[クリック]→[Left]をクリックしてください。


そして、[ステップオーバー]ボタンをクリックして実行します。


すると、LINEの友だち一覧が表示されます。


(5)次に、LINE画面の右端にある[>]ボタンをクリックしてトークルームを開きます。

[>]を右クリック→[クリック]→[Left]をクリックしてください。


(6)ここで、追加された[Left Click]ステップの[Component]を修正します。そして、[ステップオーバー]ボタンをクリックして実行します。


[Location Found]>[Component]の修正

《修正前》 element
《修正後》 element[name=">"]


すると、LINEのトークルームが表示されます。


(7)これで、LINE起動のワークフローは9割完成です。最後に少し手直しをしていきましょう。

まずは、エディター画面上の[停止]ボタンをクリックして実行をリセットしてから、各ステップをわかりやすい名前に変更してください。


(8)次に、[トークルームを開く]ステップを修正します。

なぜかというと、既にトークルームが開いているときは[>]ボタンが見つからず、エラーになってしまうからです。


[>]ボタンが見つからなかったときの処理

修正前 : 60秒待機 → タイムアウトエラー
修正後 :   2秒待機 → 処理続行



(9)これで、LINE起動のワークフローは完成です。動作確認をしてみましょう。

起動しているLINEを閉じてからエディター画面上の[実行]ボタンをクリックして、処理が正常に行われるかを確認してください。

 ※DAに不具合が発生した場合は、DSに戻って[更新]ボタンをクリックしてリフレッシュしてみてください。


確認できたら、[保存]ボタンをクリックしてエディターを閉じてください。


(10)DSに戻ったら、[Desktop Automation]ステップの名前を「LINE起動」に変更して、[ステップを無効化]しておきます。

 ※LINEが起動しているときに[LINE起動]ステップが実行されるとエラーになります。(エラー回避処理も考えてみてくださいね!)



【2-5】LINEメッセージを送信する(DA)

(1)新しいアクションステップを追加して、[アクション]は[Desktop Automation]を選択します。[入力値]はタイプ[line送信]を選択し、[必要なデバイス]は[スタティックリファレンス]の[local_pc]を選択してください。

そして、[ワークフロー]の[編集]をクリックします。


(2)エディター画面が表示されたら画面を小さくして右に寄せ、LINE画面が隠れないようにします。

そして、レコーダー・ビューの[LINE]タブを右クリック→[ツリーモード]→[ISA]をクリックします。


(3)ここから、LINEの宛先を入力していきます。

ワークフロー画面の黄色い丸マークを右クリック→[Set Clipboard]をクリックしてください。

 ※クリップボードに保存→貼り付けする方が、[Enter Text ステップ]よりもうまく文字入力できました。



そして、[Set Clipboard]ステップの[Contents]には変数[line送信.宛先]をセットして、[ステップオーバー]ボタンをクリックします。


(4)次に、[名前で検索]ボックスを右クリック→[フィールドでキープレス]→[フィールドに貼り付け]をクリックして、[ステップオーバー]ボタンをクリックします。


すると、変数[line送信.宛先]の値が貼り付けられ、友だち一覧に送信対象の宛先が表示されます。

 ※該当する宛先が1件になるように、LINEの表示名を変更するなど調整してください。


(5)宛先を右クリック→[クリック]→[Left]をクリックして、[ステップオーバー]ボタンをクリックします。


(6)宛先にトーク履歴がない場合は次のような画面が表示されますので、[トーク]を右クリック→[クリック]→[Left]をクリックします。


(7)そして、[トーク]ボタンが見つからないときの処理を変更してから、[ステップオーバー]ボタンをクリックします。


[トーク]ボタンが見つからなかったときの処理

修正前 : 60秒待機 → タイムアウトエラー
修正後 :   2秒待機 → 処理続行



(8)ここから、LINEのメッセージを入力していきます。

ワークフロー画面の黄色い丸マークを右クリック→[Set Clipboard]をクリックしてください。


そして、[Set Clipboard]ステップの[Contents]には変数[line送信.メッセージ]をセットして、[ステップオーバー]ボタンをクリックします。


(9)次に、LINE画面のメッセージ入力ボックスを右クリック→[フィールドでキープレス]→[フィールドに貼り付け]をクリックして、[ステップオーバー]ボタンをクリックします。


すると、変数[line送信.メッセージ]の値が貼り付けられます。


(10)最後に、メッセージ送信処理を作成します。

ワークフローの黄色い丸マークを右クリック→[Press Key ステップ]をクリックしてから、[ステップオーバー]ボタンをクリックします。


(11)これで、LINEのメッセージ送信処理が完成しました。

エディター画面上の[リセット]ボタンをクリックして実行をリセットし、各ステップをわかりやすい名前に変更しましょう。


(12)そして、LINEアプリケーションを下図のような状態にしてから、エディター画面上の[実行を開始]ボタンをクリックして、処理が正常に行われるかどうか確認してください。


確認できたら、[保存]ボタンをクリックしてエディターを閉じてください。


(13)DSに戻ったら、[Desktop Automation]ステップの名前を「LINE送信」に変更して、[ステップを無効化]しておきます。


【2-6】LINEを終了する(DA)

(1)新しいアクションステップを追加して、[アクション]は[Desktop Automation]を選択します。[必要なデバイス]は[スタティックリファレンス]の[local_pc]を選択してください。

そして、[ワークフロー]の[編集]をクリックします。


(2)エディター画面が表示されたら画面を小さくして右に寄せ、LINE画面が隠れないようにします。

そして、ワークフロー画面の黄色い丸マークを右クリック→[Press Key ステップ]をクリックしてください。


(3)[Press Key ステップ]の設定値は、次の通りです。設定できたら、[ステップオーバー]ボタンをクリックしてください。

  • [Application]>[Base Finder]>[Reuse Device]
  • [Application]>[Device]>[local_pc]
  • [Application]>[Application]> LINE.exe
  • [Key]>[Standard Keys]>[Esc]
  • [Count]> 3

 ※デバイスマッピング[local_pc]のLINEアプリケーション(LINE.exe)でEscapeキーを3回押します!ということ。



(4)これで、LINEアプリケーションを終了する処理が完了したので(わずか1ステップ)、[保存]ボタンをクリックしてエディターを閉じてください。

そして、DSに戻ったら、[Desktop Automation]ステップの名前を「LINE終了」に変更してください。

さらに、無効化していた[LINE起動]ステップと[LINE送信]ステップを有効化してください。


【3】ロボットを実行する

(1)はじめに、デザインモードで最初のステップをクリックしてから[更新]ボタンをクリックします。(リフレッシュ!)

そして、デバッグモードでロボットを実行して、LINEの送信結果を確認してください。


今回は、宛先とメッセージをデフォルト値に設定しましたが、工夫次第でいろいろなLINE送信ロボットが作れます (*’▽’)♪

あとは、「送ってはいけない人に送ってしまった!」なんてことがないように気を付けましょう!!