無駄ロボット研究所
嫌な飲み会の誘いは偽の予定で撃退 ~無念! お誘いお断りロボの巻
2019年7月4日 06:55
『無駄ロボット研究所』ではRPA(Robotic Process Automation)ツール「UiPath Studio」を使って役に立たない、無駄なロボットを作っていきます。業務を効率化するという本来RPAで実現すべき目的とは真逆のロボットたちをお楽しみください。
今日は、まっすぐ家に返りたい……。そんなときに限って、お誘いのメールが来て、どう返事をしようかと悩むことはありませんか? そんなときは、真っ先に、このロボットを起動してください。Google カレンダーにロボットが自動的に予定を入れてくれるので、いつの間にか入っていた予定を理由に、一切うしろめたさなく誘いを断ることができますよ。
『予定があればいいのに』
Google カレンダーを開くときに、『お願い、予定入っていて!』と、祈ることはありませんか?
もう、そんな運任せとは、さよならです。
このロボットを起動すると、今日の夜、20:00~22:00に“テレビ会議”という予定が自動的に登録されます。
身に覚えがありませんか? そんなことはどうでもいいのです。
とにかくあなたは、まっすぐ自宅に帰り、20:00からのテレビ会議に参加する必要があるのです。
後ろめたさなんて感じることなく、誘いを断ってテレビ会議に備えましょう。もしかすると、ミーティングのコールはないかもしれません。でも、仕方ありません。予定が入っていたのですから、あなたはGoogle カレンダーの予定に従っただけなのです。
GSuiteと連携させる
さて、ロボットを作っていきましょう。
今回のロボットのポイントは、Google カレンダーとの連携になります。「UiPath Studio」は、ブラウザー経由でWebサービスを操作することもできるので、Google カレンダーのWebページを開いて、日付をクリックして……、と地道に操作することもできますが、“UiPath.GSuite.Activities”パッケージを追加することで、GmailやGoogle カレンダーを簡単に操作できるようになります。
APIの有効化
Googleアカウントで“Calendar API”を有効化します。“Google APIs”のサイトにアクセスし、サインイン後、[ライブラリ]で“Google Calendar”で検索し、APIを有効化します。
OAuth同意画面の設定
続いて、APIにアクセスするための情報を取得します。同じく、“Google APIs”のサイトの[認証情報]画面で[OAuth同意画面]タブを開き、アプリケーション名に“UiPathRobot”など任意の名前を設定して保存します。
OAuthクライアントIDの作成
[認証情報]画面に戻り、[認証情報を作成]から“OAuthクライアントID”を選択して、新しく作成します。
アプリケーションの種類で、“その他”を選択し、名前に“UiPath”と設定します。これで、「UiPath Studio」からアクセスするときに必要な“クライアント ID”と“クライアント シークレット”が発行されます。
GSuiteパッケージの追加
「UiPath Studio」には、標準ではGSuiteと連携するためのアクティビティは登録されてません。このため、パッケージを追加する必要があります。
[パッケージを管理]から[すべてのパッケージ]を選択した状態で“GSuite”を検索すると、“UiPath.GSuite.Activities”が表示されるので、これをインストールしておきます(“UiPath Go!”からダウンロードして追加することもできる)。
日時を生成
さあ、ロボットを作っていきましょう。まずは、登録する日付を生成します。ロボットを実行した当日の20:00~22:00にスケジュールを登録したいので、この日付を生成します。
[代入]アクティビティを配置し、次の2つの変数に日付を設定します(いずれも左辺では[Ctrl]+[K]キーで変数を作成すること)。
dtStart = DateTime.ParseExact(dtStart.now.ToString("MM/dd/yyyy 20:00"),"MM/dd/yyyy HH:mm",Nothing)
dtEnd = DateTime.ParseExact(dtStart.now.ToString("MM/dd/yyyy 22:00"),"MM/dd/yyyy HH:mm",Nothing)
少々長いのですが、後述するGSuiteアクティビティにDateTime型で値を渡すために“DateTime.PerseExact”を使って、日付の文字列を変換しています。日付の値は“.now”で取得していますが、受け渡す値は“05/24/2019”のように“月/日/年”の形式である必要があるので、この形式に変換してから、DateTime型にしています。
なお、“20:00”や“22:00”の部分を書き換えれば、任意の時間に変更できます。
GSuiteアプリケーションスコープ
GSuiteに関する操作を記述する際は、まず、このアクティビティを配置します。配置後、プロパティパネルで、“Google APIs”から取得した“クライアント ID”と“クライアント シークレット”を入力します。
予定を作成
Google カレンダーに対する操作は、“予定を作成”・“予定を削除”・“予定を変更”・“予定を検索”・“参加者を追加”があります。ここでは、予定を追加したいので、“予定を作成”を配置します。
[タイトル]に“"テレビ会議"”、[開始時刻]に“dtStart”、[終了時刻]に“dtEnd”を指定し、タイムゾーンを“"Asia/Tokyo"”に設定します。
ユーザー認証
これでロボットは完成ですが、初回は認証が必要です。実行すると、ユーザー認証と権限付与の画面が表示されます。予定を登録したいアカウントでサインインし、Google カレンダーへの権限を許可します。
もちろん、次回以降は、何も表示されずに予定が追加されるので、たとえば、デスクの近くで直接お誘いがあっても安心です。ロボットはひっそりと予定を追加しますので、実行後に、何食わぬ顔でGoogle カレンダーを開けば、そこに予定が登録されています。
これで、もう、いつ誘われても安心ですね。