IFTTT と Micorosoft Power Automate を連携して Alexa から Microsoft TODO にタスク登録しようとしてうまくいかなかった記録

追記あり:結局、連携させることができました。

上手くいかなかったことも記録しておけば後々役に立つかもしれないので書いておきます。

やりたかったこと

Alexa 経由で音声で、Microsoft TODO にタスクを登録したい。

やろうとしたこと

Webhook で IFTTT をトリガーに Microsoft Flow を動かす - Qiitaを参考に以下をやってみようとした。

  • IFTTT
    • Alexaの”Item added to your To Do List”トリガーを利用して、AlexaのToDoリストへのタスクの追加を契機にアクションを実行
    • Webhooksの"Make a web Request"アクションを利用して、AlexaのToDoリストに追加されたタスクの名称をBodyにしつつ、Power AutomateのWebhookへリクエストを送る
  • Microsoft Power Automate
    • "HTTP要求の受信時”を使ってリクエストを受け付ける
    • "タスクの作成(プレビュー)"を使ってMicrosoft ToDoにリクエストの内容でタスクを作成する

できたこと

  • IFTTT
    • Alexaの”Item added to your To Do List”トリガーを利用して、AlexaのToDoリストへのタスクの追加を契機にアクションを実行
  • Microsoft Power Automate
    • "HTTP要求の受信時”を使ってリクエストを受け付ける
    • "タスクの作成(プレビュー)"を使ってMicrosoft ToDoにリクエストの内容でタスクを作成する
      • ローカルマシンからInvoke-WebRequestコマンドレットを利用してタスクを作成することができた
        • Invoke-WebRequest $URL -Method POST

できなかったこと

  • IFTTTでWebhooksの"Make a web Request"アクションを利用して、AlexaのToDoリストに追加されたタスクの名称をBodyにしつつ、Power AutomateのWebhookへリクエストを送ること
    • トリガーからserviceは起動できているが、serviceが失敗する
      • エラーメッセージは以下の通り
        • Action failure message: Unable to make web request. Your server returned a undefined
    • Power Automate側の実行履歴にログが残っていない

考えていること

  • Power Automate側の実行履歴にログが残っていないので、IFTTTから正しいURLでPower Automateを呼び出せていないものと思われる
  • IFTTTに設定しているURLと同じURLを使って、Invoke-WebRequestでリクエストしてPower Automateを実行できているので、URLの誤入力ではない
  • IFTTTに設定する際のエスケープが必要?と適当にやってみたがうまくいかない。
    • URL全体をクォートしてみる ⇒ そもそもIFTTTは引用符始まりのURLを受け付けてくれないのでNG
    • URLのクエリパラメータを<<<>>>で囲ってみる ⇒ エラーに変化はない
  • うーんよくわからないけど何か制限事項があるのか...?

代替手段

追記

日を置いて改めて設定を見直したら、BODYの指定を誤っていて(記号({)が全角文字だった)、それを直しただけで正常にPOSTできるようになりました。 とてもしょうもないのですが、連携できてよかった。

あとは余談ですが、Curlでアンパサンドを含むURLを送付するときはエスケープしないとBashの機能と競合するので注意しましょう。

自分向けのリンク集(開発手法まわり)

随時更新

自分向けのリンク集(開発手法まわり)

随時更新

AnacondaがPowershellでうまく起動しないときの対策

これまでAnacondaがPowershellではうまく起動しないと思っていて、Anaconda Powershell Promptをわざわざ起動していた。 ところが、Anaconda がやっと PowerShell に公式対応した - Qiitaを参考にconda init powershellするとPowerShell の Profileを書き換えて、Powershell起動時にcondaの環境も起動してくれる。

余談

いったんは上記で対応したのだが、若干の気持ち悪さはある(起動時間も気になる)。 anacondaは楽ではあるのだが…素のpythonをインストールして、pipしたほうがいいのかもしれない…

WindowsのVSCodeからGitにSSH接続しようとして失敗するときの暫定対策

自分用の雑なメモ

症状

  • WindowsVScodeからGitにSSH接続しようとする(=pushやpullをしようとする)とSSH接続エラーになる
    • エラーの内容はPermission denied (publickey)
    • sshキーのパスフレーズを入力していないので当然だが、入力することができない
  • git bash からのpushやpullは問題ない

暫定対策

以下の環境変数を定義する*1

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-askpass

暫定対策

環境変数SSH_ASKPASSを使って、SSHキーのパスフレーズ入力にgit同梱のaskpassプログラムを指定している。これにより、パスフレーズ入力が必要になるとaskpassプログラムを起動し、その中ででパスフレーズ入力してVSCodeに渡せるようになる。

これでいいんだっけ?

  • そもそもVSCodeの中で完結することも可能だった気がする。
  • 毎回パスフレーズ入力するのも面倒
    • ただ、とりあえず暫定的にうごくようになっただけでもまし。

参考

*1:git-gui--askpassでもよい

自分向けのリンク集(プロジェクト運営周り)

PMBOKをみろ、というむきもあると思うが、もう少しライトでもいいよね。というリンク集。

随時更新

Vue.jsで書いたソースコードをGitHubにPushすると、自動でNetlifyにDeployされる世の中

久々に少し週末に時間の余裕ができた。以前から気にはなっていたNetlifyを試してみるかと思った。

以前、お試しで書いていたVue.jsのソースコードGitHubにPushして、Netlify側でポチポチやるだけで、すぐに自動でBuildが走って、Deployされる。 普段のExcelと格闘しているお仕事を考えると別世界感がすごい。ちょっとでもいいから勉強を日々つづけないといけない。

その他雑記

余談

GitHub Pagesも試そうかと思ったが、あれはどちらかというとOSSのドキュメントをホストするためのサービスで、自分で書いたページのホスティングには向かないような気がした。※リポジトリにビルド結果を突っ込むというのは、なんというか気持ち悪い。