約 8 分で読めます。
私の母はガラケーで、LINEやSNSを全く使ったことがなく、

いまのケータイで不満はないよ。
それに最近スマホを狙った詐欺みたいなニュースもあるし。
そんなの絶対いや。
スマホだと大きすぎてポケットに入らないし、とにかく今のままでいいよ。
ということで、スマホもSNSも全くやっていませんし、これからも予定なし。
一方我々のような比較的スマホを使いこなしている世代からすると、

今どきメールなんて面倒なんだよな。
いちいち過去のメール一覧から探して返信とかやってられない。
会話の履歴を追うのもだるいし、LINEとかでコミュニケーションしたいわ。
と思ってしまうもので。
ただ、母にスマホを使ってもらうのは、何度も説得したけど無理でした。
俗に言うデジタルデバイドですが、気持ちは理解できました。
ということで、
・母はガラケーでメールを使う ・自分はLINEみたいな会話をする
というシステムを作ってみました。
使ったのはNextcloud Talk。
こんな風に会話ができています。

一方で母から見ると、以下のようにメールでのやり取りに見えている。

システム構成
システム構成は以下の通りです。
→ 母からyatchにメッセージ送信
→ yatchから母にメール送信

すでに存在しているWebサービスやAPIを組合せて作りました。
プログラムはほとんど書いていません。
めっちゃ楽でした。
母からメール送信時
もともと私は母とのメールやり取りにGmailを使っていました。
そこにZapierでの連携を追加しています。
具体的には以下画像の通り。
2. Custom Requestはプレミアム会員になる必要があります。月額19.99USD。
これを安いと思うか高いと思うかは各人次第ですが、私は払う価値があると判断しました。

トリガー側はこう。
母のアドレスからメールが来たことをトリガーにしています。

アクションはこう。
Nextcloud TalkはREST APIで投稿などができるようになっていますので、それを活用。

Nextcloud TalkにHTTP POSTで各種操作するAPIはこちらで公開されています。
以下は自分が躓いたところなので、気をつけてください。
A. ユーザー名とパスワードはBasic Authで指定する 二要素認証を有効にしている場合はアプリ毎のパスワードで対処 B. Content-Type: application/x-www-form-urlencoded を指定する C. OCS-APIRequest: true を指定する
A. の「二要素認証を有効にしている場合はアプリ毎のパスワードで対処」はこの記事で説明していますので、参考にしてください。
母にメッセージ送信時
こちらではNextcloud Talkの特殊機能であるCommandsを使っています。
執筆時点ではBeta
メッセージ投稿時に
/m Hello
など、
スラッシュ+ASCII文字列での識別子+スペース+メッセージ
と入力することで、サーバーOS上でコマンドを実行させられる機能です。
私は以下のように設定しました。
gmail.pyって名前が変だけど、、、まあいいか。
/m メッセージ でpython3 gmail.pyを実行 例: /m おはよう! gmail.pyでは以下を実行 A. メッセージを本文に指定してGmailを送信 送信元:自分 送信先:母 B. Nextcloud Talkに投稿 投稿先:母とのチャットルーム 投稿者:自分
occコマンドで見たときは以下です。
responseを0にし、Commands実行自体をチャット画面に表示させないようにしています。
sudo -u www-data php occ talk:command:list The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see https://www.php.net/manual/en/book.pcntl.php The current PHP memory limit is below the recommended value of 512MB. Response values: 0 - No one, 1 - User, 2 - All Enabled values: 0 - Disabled, 1 - Moderators, 2 - Users, 3 - Guests +----+-----+-------+---------+------------------------------------------------------+----------+---------+ | id | app | name | command | script | response | enabled | +----+-----+-------+---------+------------------------------------------------------+----------+---------+ | 1 | | talk | help | help | 1 | 3 | | 4 | | gmail | m | python3 /var/www/nextcloud_data/gmail.py {ARGUMENTS} | 0 | 3 | +----+-----+-------+---------+------------------------------------------------------+----------+---------+
A. のPythonからGmailを送る方法は以下の記事を参考にさせていただきました。

ASCII文字、日本語、森鷗外などUnicode、絵文字、改行、を一通り試したところ、特に不具合は出ていないので、ひとまず運用に踏み切りました。
終わりに
いかがでしたか。
似たような課題でお悩みの方は意外といるのでは?
Comments