LoginSignup
12
14

More than 5 years have passed since last update.

ハングアウトBotを作ってみる

Last updated at Posted at 2017-11-20

2018/08/20時点でGoogle側の認証方法が変わったのか、下記の方法で作成したBotは動きません。

はじめに

ハングアウトChatの正式リリースはいつになるのでしょうか?
今年の3月に発表されチャットBotなどの機能も盛り込まれそうなのですが、今のところEarly Adopter Program中のようです、GoogleのAlpha、Betaは仕様変わりそうでまだ手が出せないなと思っていると、↓のBlog記事を教えてもらいました。
Web制作会社トライム:Googleハングアウトのbotを作成する

サードパーティ製のBotライブラリを使用してハングアウトでBotを実現している模様。
BotライブラリのGitHubページは↓
GitHub – hangoutsbot/hangoutsbot: Google Hangouts bot

単純に同じことするならBlog記事見ろよとなるので、
Windows + Visual Studioでの導入方法などを書いてみる。

前提条件

開発環境

  • Visual Studio 2017 Community 15.4.4 (Python開発インストール済) ※15.4.2ではVisual Studioの言語が英語以外の場合、バグによりPython環境がまともに動かないので注意。
  • Python 3.6.3 64bit ※Visual StudioでPython開発環境インストール時にインストールされるPythonでもOK

アカウントなど

  • BotにするGoogleアカウント

実際に作ってみる

プログラム作成

プロジェクト作成

Visual Studioからプロジェクトの新規作成を行います。
プロジェクトのタイプはPython アプリケーションを指定します。
image.png

Botライブラリを取得します。
GitHub – hangoutsbot/hangoutsbot: Google Hangouts bot
からGit CloneなりZipダウンロードなりでライブラリのソースを取得します。

取得したソースを作成したプロジェクトのフォルダにコピーします。
ソリューションエクスプローラーですべてのファイルを表示し、コピーしたファイルをプロジェクトに含めます。
※すべてのファイルを表示をクリックしても表示されない場合は、プロジェクトのアンロード→ロードすると多分表示されます。
image.png

プロジェクト作成時に自動で作成されたプロジェクト名.pyファイルは使わないので削除し、hangupsbotフォルダ内のhangupsbot.pyをスタートアップファイルに設定します。
image.png

Python仮想環境作成

他にPythonのプロジェクトを作る予定がないならやらなくてもいい仮想環境作成。
複数のプロジェクトを作成する場合、プロジェクト毎にパッケージバージョンの依存関係などが違うと面倒なことになるのでプロジェクト毎にPython仮想実行環境を作成します。
image.png

ソリューションエクスプローラーのPython環境の上で右クリックして、表示されるコンテキストメニューの仮想環境を追加をクリック。
image.png

表示されたダイアログで

  • 仮想環境の場所
  • ベースインタプリタ(使用するPythonのバージョンと思ってもらえれば)
  • requirements.txtが存在する場合はパッケージのダウンロードインストールを実施するかのチェックボックス

を指定して作成をクリック。
今回はチェックボックスはオフで作成を実行。
すると指定した場所(名称)、指定したベースインタプリタで仮想環境が作成されます。
image.png

使用するパッケージのインストール

Python標準で用意されている機能以外にも色々な機能のライブラリがパッケージ化され用意されており、
今回使用するBotライブラリもPython標準機能以外も使用しているためパッケージをインストールする必要があります。
image.png

作成した仮想環境上で右クリックして、表示されるコンテキストメニューのrequirements.txtからインストールをクリックします。
するとパッケージの依存環境を考慮した状態で各種パッケージがインストールされます。
image.png

image.png

ここまで完了するとプログラム自体は動作する状態になります。

実際に動かす

Botの起動

image.png

Visual Studioのデバッグメニューからデバッグの開始をクリックすると、
今までの設定を全て実施している場合、Python.exeの実行コンソールが起動します。

image.png

初回起動の場合は、Botに使用するGoogleアカウントのメールアドレスとパスワードを聞かれるので入力してEnterを押してください。
メールアドレス、パスワードがあっていればBotが起動します。
image.png

別のGoogleアカウントを使用したい場合などは、実行コンソール中にmemory.jsonというファイル名のパスがあるので、そのパスのファイルを削除すると初回起動と同じ動きになります。

メールアドレス、パスワードが一致しているのに認証エラーになる場合

  • 2段階認証を使用している場合:アプリパスワードを生成してログイン
  • それでもログイン出来ない場合:Display Unlock Captcha - Google AccountsでGoogleアカウントのアクセスを許可すると行けるかも。※実行環境がGUI無しのUbuntu環境とかだとこれで解決しました。

Botとのやりとり

実際にBotとのやりとりは以下の通り。
あいさつに対する返答と/botコマンドでプラグインによるリマインダー機能を試しています。
/botコマンドによるプラグインはデフォルトで用意されているものもありますが、自分で作成することも出来ます。

image.png

まとめ

  • Googleアカウントの認証周りは全てやってくれるので、とても簡単。
  • チャットBotのようなイメージを持っているとちょっと肩すかし。
  • 単機能のBotとしてプラグインで拡張出来るのでいいと思う。
  • Visual StudioのPython開発は仮想環境作成など一からやるときちょっと面倒な部分をやってくれるので便利。
  • ハングアウトChatはよ
  • プラグインの作成は元の記事を参考にしてね。

プラグイン作った時の話

G Suite 組織内ユーザーの予定を名前から取得してみる(https://qiita.com/Shota_Fukuda/private/5c280cece174c58ac044)

12
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
14