1
0

MacroDroidでNotionに最速でメモをする

Last updated at Posted at 2024-05-29

AndoroidでもNotionにサクッとメモがしたい

どうも、Androidユーザーです。先日こんな記事を見つけました。

テンプレも配布されてて、めっちゃいいじゃんと思ったのですが、ショートカット機能はMac, iPhone限定。。Androidで同じことをやりたくて、調べてみたもののMacroDroidってアプリが使えそうところまでしか見つけられなかったのでこのブログ記事を参考にしつつAndoroid版のNotionの連携機能を真似して作ってみました。

こうしたらできました

下準備(こちらを参考に)

  • Notionインテグレーションの設定(tokenの値)
  • Notionデータベースの作成
  • インテグレーションの接続
  • データベースIDの確認(database_idの値)
  • 入力したい列のタイトルプロパティ名の確認(property_titleの値)
  • MacroDroidをPlayストアからインストールする

MacroDroidを設定する

新規アクションの追加

  • 右下の+ボタンから新規マクロを作成する

Triggersの設定

  • Widget Buttonを検索して追加する
  • 適当なウィジェットの色や形を設定してください
  • あとからホーム画面に設置して使います

Actionsの設定

Local変数tokenの定義

  • Set Variableを選んで, [新規変数]を選択する
  • Variable TypeをStringに設定し、Local変数名 tokenを定義
  • Valueを選択して下準備でゲットしたtokenの値を設定する

Local変数database_idの定義

  • Set Variableを選んで, [新規変数]を選択する
  • Variable TypeをStringに設定し、Local変数名 database_idを定義
  • Valueを選択して下準備でゲットしたdatabase_idの値を設定する

Local変数property_titleの定義

  • Set Variableを選んで, [新規変数]を選択する
  • Variable TypeをStringに設定し、Local変数名 property_titleを定義
  • Valueを選択して下準備でゲットしたproperty_titleの値を設定する

Local変数auth_headerの定義

  • Set Variableを選んで, [新規変数]を選択する
  • Variable TypeをStringに設定し、Local変数名 auth_headerを定義
  • Valueを選択してBearer {lv=token}と値を設定する

ユーザー入力を受け取る変数を定義

  • Set Variableを選んで, [新規変数]を選択する
  • Variable TypeをStringに設定し、Local変数名 note_contentを定義
  • [User Prompt]を選択する
  • Title, Descriptionは空のままokをおして閉じてよい

POST部分の作成

  • HTTP Requestを検索して選択
    • Settings を下記のように編集(logは任意で)
      image.png

    • Header Params を下記のように編集
      image.png

    • Content Body を下記のように編集
      image.png

JSONはこんな感じで

{
    "parent": {
        "database_id": "{lv=database_id}"
    },
    "properties": {
        "{lv=property_title}": {
            "title": [
                {
                    "text": {
                        "content": "{lv=note_content}"
                    }
                }
            ]
        }
    }
}

追記) もしメモした日付も一緒に記録したい場合はこう書く。(記載日列を日付フォーマットで入力する) もちろん個別に変数定義してもok。

{
    "parent": {
        "database_id": "{lv=database_id}"
    },
    "properties": {
        "{lv=property_title}": {
            "title": [
                {
                    "text": {
                        "content": "{lv=note_content}"
                    }
                }
            ]
        },
    "記載日": {
          "date": {
                "start":"{year}-{month_digit}-{dayofmonth}"
            }
       }  
    }
}
  • 設定が終わったらこうなってるはず。。。。
    image.png)

動作確認する

  • MacroDroidの右上のボタンを押してTest Actionsを押すと動きます。
  • うまくいかないときはlogを見てパラメータミスが無いか確認しました。
    • HTTP RequestのSettingsでlogファイルを出力するように設定できます

おまけ

よくわかんなかったのでGeminiやClaude 3に助けてもらいながら設定しました。
MacroDroid内でlocal変数を呼び出す場合は{lv=変数名}みたいな書き方をするようです。
Voice InputのActionを使うことで音声入力からも同じくメモが取れます。
デバッグはPostman使ってMACのショートカットと同じ入力した場合の返り値とエラーの場合の返り値とを比較しました。

1
0
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
1
0