4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Miro更新botを作ってみた

Last updated at Posted at 2023-07-14

はじめに

社内活動でMiroを使用しており、隔週で特定の場所のお天気マークを更新しているので、更新忘れ防止とスマホからでも簡単に更新できたらいいなと思いbotを作ってみることにしました。

bot概要

PowerAutomateからスケジュール実行でTeamsにアダプティブカードを投稿し、選択したお天気マークをMiroに付箋で貼り付けるbotを作成します。
image.png

アダプティブカード作成

アダプティブカードデザイナーでお天気マークがボタンになっているカードを作成します。
作成できたら[Copy Card Payload]をクリックしてJSONをコピーしておきます。
(詳しい手順はこちらがとてもわかりやすかったので割愛します)

  • 作成したカード

    • 右上のTargetVersionは1.5だとTeams非対応なので1.4以下に変更
    • 1つ目のTextBlockのtextはあとでメンションを編集するためブランクのまま
      image.png
  • JSON

{
    "type": "AdaptiveCard",
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.4",
    "body": [
        {
            "type": "TextBlock",
            "text": "",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "お天気マーク更新してください",
            "wrap": true
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.Submit",
                                    "title": "🌤",
                                    "id": "🌤"
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.Submit",
                                    "title": "🌥",
                                    "id": "🌥"
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.Submit",
                                    "title": "🌧",
                                    "id": "🌧"
                                }
                            ]
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "ActionSet",
                            "actions": [
                                {
                                    "type": "Action.Submit",
                                    "title": "⛈",
                                    "id": "⛈"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

MiroAPIのAccessToken発行

下記手順でAccessTokenを発行し、発行したAccessTokenを退避しておきます。

  1. Miro Developer Platformにアクセスし、[Start Building now →]をクリック
    image.png

  2. チェックを入れて[Create a team]をクリック
    image.png

  3. [+]ボタンをクリック
    image.png

  4. 適当なアプリ名を入力し[アプリを作成する]をクリック
    image.png

  5. boards:read、boards:writeにチェックがついていることを確認し、[アプリをインストールしてOAuthトークンを取得する]をクリック
    image.png

  6. Dev teamを選択し、[Add]をクリック
    image.png

  7. AccessTokenが取得できた
    スクリーンショット 2023-07-10 22.03.11.png

MiroAPIリクエスト作成

絵文字を作成するAPIはないようなので、付箋にお天気マークを書いて投稿することにしました。
付箋作成のAPIリファレンスでリクエストを作成します。
下記入力できたら[Try It!]をクリックするとリクエストが発行されるので、更新先のMiroボードにいい感じに付箋が作成されたら、リクエストを退避しておきます。

  • Bearer:取得したAccessToken
  • board_id:更新先のMiroボードID(https://miro.com/app/board/[ここがboard_id]/
  • BODY PARAMS:指定したいところを入力(positionはparent指定しない場合は絶対位置を指定)

スクリーンショット 2023-07-11 0.40.35.png

PowerAutomate作成

下記手順でPowerAutomateを作成します。

  1. 作成からスケジュール済みクラウドフローをクリック
    image.png

  2. フロー名、開始日時、繰り返し間隔、設定曜日を指定して[作成]をクリック
    image.png

  3. タイムゾーン、設定時刻を入力
    image.png

  4. ユーザーの@mentionトークンを取得するステップを追加し、ユーザーにメンションしたい人のメールアドレスを入力
    スクリーンショット 2023-07-11 9.58.42.png

  5. アダプティブ カードを投稿して応答を待機するステップを追加し、下記を入力

    • 投稿者:フローボットを選択
    • 投稿先:Channelを選択
    • メッセージ:アダプティブカード作成でコピーしたJSONを貼り付け、一つ目のTextBlockのtextに動的なコンテンツの追加から@mentionを追加
      image.png
  6. 更新メッセージにアダプティブカードのお天気マークボタンクリック後のメッセージを入力し、Team、Channelは投稿先を指定
    スクリーンショット 2023-07-11 10.39.43.png

  7. HTTPステップを追加し、下記を入力

    • 方法:POST
    • URI、ヘッダー:退避しておいたMiroAPIリクエストから入力
    • 本文:退避しておいたMiroAPIリクエストから入力し、contentにはアダプティブカードで選択したお天気マークを入れるため、動的なコンテンツの追加から式でoutputs('アダプティブ_カードを投稿して応答を待機する')?['body/submitActionId']を追加
    • 認証:未加工
    • 値:退避しておいたMiroAPIリクエストから入力
      スクリーンショット 2023-07-11 10.43.47.png

PowerAutomateテスト実行

下記手順でテスト実行します。

  1. 保存し、右上の[テスト]をクリック
    image.png

  2. 手動を選択し[テスト]をクリック
    スクリーンショット 2023-07-10 22.48.58.png

  3. [フローの実行]をクリック
    スクリーンショット 2023-07-10 22.50.00.png

  4. Teamsにアダプティブカードが投稿されたら、任意のお天気マークをクリック
    スクリーンショット 2023-07-10 22.50.28.png

  5. アダプティブカードが「Miroを更新しました!」に変わる
    スクリーンショット 2023-07-11 11.02.24.png

  6. Miroにアダプティブカードで選択したお天気マークの付箋が作成される!
    image.png

さいごに

Miroは使っているけどMiroAPIは知らなかったという方もいると思うので、ぜひ参考にして頂けたらと思います!

参考

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?