LoginSignup
1
0

More than 3 years have passed since last update.

【備忘録】LINE WORKS版Trello Botの動作確認をPostmanで行う

Posted at

先日、他部署のLINE WORKS版Trello Botユーザーから「作って貰ったTrello Botの更新通知がLINE WORKSに来なくなった」という連絡が来た。Trelloからも「Webhookの1つが失敗し、無効になる可能性があります」という件名でメールが来ているとのこと。

image.png

しかし、
- こちらでHerokuにデプロイしたBotアプリのソースコードをいじったわけではない
- LINE WORKSのAPI情報をいじったわけでもない
- Trelloから「Webhookの仕様変えるよ」という連絡が来た記憶はない
ということを考えると、「ユーザー側で何かした」としか思えなかったので確認したところ、「ボードを一つ追加しただけ」とのこと。

何はともあれ、原因究明のため、動作確認をする必要が出てきたが、動作確認のためにはLINE WORKS版Trello Botのデプロイ先(Heroku)に対してPOSTリクエストをする必要がある。

しかし、
- 他部署のTrelloボードへのアクセス権限は貰えないため、WebhookによるPOSTリクエストはできない
- 会社のPCにcURLを入れるための説明をISMS担当者にするのもめんどくさい
と億劫な気持ちになっていたら、Chrome ウェブストアでPostmanを発見!
Postmanで解決できた。

以下、再度、動作確認しなければならなくなったときの為、やったことを記録しておく。

やったこと

1. PostmanをGoogle Chromeに追加

リンクはこちら(↓)
Postman - Chrome ウェブストア
なお、PostmanはGoogleアカウントで利用登録できた。

2. JSONダミーデータを作成

Trelloのカードにコメントを入力すると、Webhook生成時にコールバックURLで指定したLINE WORKS版Trello Botのデプロイ先(Heroku)にJSONデータが飛ぶ(POSTメソッド)。
そのJSONデータを処理してLINE WORKSのトークルームに送信するソースコード(抜粋)は以下のようになっている。

app.py
@app.route('/webhook', methods=['GET', 'HEAD', 'POST'])
def webhook():
    if request.method == 'GET':
        return 'Start', 200
    elif request.method == 'HEAD':
        return '', 200
    elif request.method == 'POST':
        action_type = request.json['action']['display']['translationKey']
        if action_type == 'action_comment_on_card':
            card_name = request.json['action']['data']['card']['name']
            user_name = request.json['action']['memberCreator']['fullName']
            comment = request.json['action']['data']['text']
            message = user_name + "さんがコメントしました。\n【カード】" + card_name + "\n【コメント】" + comment
            talkbot.send_text_message(send_text=message)
            return '', 200
        else:
            pass
    else:
        abort(400)

このPOSTリクエストをPostmanで再現したいので、JSONダミーデータを作成した。

{
    "action":{
        "display":{
            "translationKey":"action_comment_on_card"
        },
        "data":{
            "card":{
                "name":"カード名"
            },
            "text":"コメント"
        },
        "memberCreator":{
            "fullName":"ユーザー名"
        }
    }
}

3. PostmanからPOSTリクエストを送信

  • HTTPメソッドを「POST」に変更
  • URLにコールバックURL(HerokuアプリのURL)を入力
  • Bodyでリクエストボディは「row」を選択し、Content-typeは「JSON(application/json)」に変更、2のJSONダミーデータを入力

この状態でSendボタンを押下すると、Postリクエストが送信される。

image.png

動作確認した結果

ステータスコード200のレスポンスが返ってきて、LINE WORKSにも更新通知が飛んだ。そして、以降はTrello更新通知がLINE WORKSに飛ぶようになった。結局、原因不明だがめでたしめでたし。

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