pythonプログラム置き場

アレクサのプロアクティブイベントをPythonで送りたい①

こんにちは。しばらくの間更新をすっかりサボっていた記事担当のsayaです。長野は寒かったりいきなり20度超えたりと、夏と冬が同時にきてすごい気味が悪いような思いをしてる最近です。

さて、今回から少しシリーズでお届けしたいと思っているのが、アレクサを使ったプッシュ通知開発です。

実はAIスピーカーについては色々調べてまして、アメリカ人の成人人口の45%がもってるだとか、日本だと普及率5%程度だけど、2025年には世帯普及率40%だとか、眉唾な研究結果があったりします。

まぁ面白い技術ではあります。声で操作できる「アイズフリー」と呼ばれる技術。(ハンズフリーから目(eye)もフリーにするという意味らしいです)

これ色々調べるとわかるんですが、プッシュ通知がちょっと使えるんですね。プロアクティブイベントという名前なんですが。でもちょっと弱い。実は非常に自由度がありません。Amazon側で用意している発音とか型に当てはめて使う、みたいな限定的なものしかまだできません。

しかし仕方ない面もあります。だってAIスピーカーがいきなり喋り出したら、怖いでしょ?ってことですね。色々できたらそれはそれで不気味じゃないかと。なのでそこは気にしても仕方ないです。逆に制限があったほうがアイデア勝負というところです。

問題はですね、このプロアクティブイベント。誰も彼もNode.jsで開発してるんですよ。

万能なNode.js

簡単な流れとしては
1.アレクサのプロアクティブイベントの設定を変更する
2.APIを使ってアクセストークンを取得し、プッシュしたいプログラム(JSON)を送る。

こんな感じなのですが、みなさんこれをNode.jsでやってる。いやいや、私はPythonでこれをやりたいんですよってことです。

1番は設定だけなので、ぶっちゃけ先人にならってコンソールから設定するだけなので、そのままやればできます。(また次回以降詳しくやっていきますが)問題は2番目です。全然Pythonでの書き方が出てこないんですね。

原理

今回はつらつら書くのはないので、原理だけささっと書いて終えます。
ぶっちゃけnode.jsでもPythonでも、送っているのはcurlコマンドで送信できる内容です。となると、必然的にこのページがすごい参考になります。

https://curl.trillworks.com/

これ、curlコマンドをpythonとかnode.jsに変換してくれる代物なのですが、つまりみんながnode.jsで作っている書式をリバースしてcurl化し、pythonだとどうなるか見てみれば良いわけです。そんなに難しいコマンドではないので、案外さっくりできます。

あとはPython側でrequestをimportすればできます。
すごいざっくりとした説明ですが、HTTPS通信してるだけなんで、当たり前っちゃ当たり前。ついでに私は「ひとまず全て手順通りにやる」人なので、先人にならって全てnode.jsでやってから、pythonに移行させました。これも大事。

というわけで今日は原理だけでしたが、次回から懇切丁寧に説明していこうかと思います。アレクサ、面白いんですけどまだまだ普及してないようなのでもっと普及すればこのページアクセスも増えるんじゃないかなーと。そうなればいんですけどね。

コメントを残す

*