Help us understand the problem. What is going on with this article?

選択範囲テキストをTrelloにカード作成したかった1(Trelloにカードを投稿するコマンドを作るまで)

More than 1 year has passed since last update.

はじめに

普段Trelloにメモ書きすることが多いのですが
メモしにTrelloを開くたびに他に意識を取られて集中力が切れてしまっているので、開かずしてカードを登録したくなったのでちょろちょろ手順を備忘がてらメモしようかと。

目標としては
1 コマンドでユニークなボード、リストにカード登録したい(今回はここまで)
2? 既存のリストを表示したい
3? コマンドで任意のリストにカードを登録したい
4? macにて選択範囲のテキストをショートカットでカード登録したい

リッチさは最初は置いておいて、今回は1まで。

目標

  • 今回の目標
    • ユニークなボード、リストにカードを作成する

やったこと

必要な情報を取得(APIKey, token)

  • 以下、Trelloにログインした状態で進める。

APIKeyの取得

https://trello.com/1/appKey/generate
にアクセス。
そしたらキーって書いてあるところメモ。
今回はAPIKeyの方しか使わないのでそっとしておきます。
(API:Application programing interface, おそらくwebAPIと呼ばれているものは、ここを叩けばこうなるよっていう確実性のある機能を指していて、それを今回のようにhogehogeして利用できる、みたい。認証方法とか、OAuthとかはまた今度メモする。)

Tokenの取得

  • 期限無制限でRead/Write権限のついたトークンを取得します

https://trello.com/1/authorize?key=<取得したAPIKey>&name=<アプリケーションの名前(任意)>&expiration=never&response_type=token&scope=read,write

にアクセス。そしてメモ。

curlで必要な情報を取得

準備(curl, jq のinstall)

HTTPリクエストをTrelloに実際に飛ばして、必要なボードだとかリストだとかのIDを取得する。レスポンスがjson形式で返ってくるのですがそのまま見ると見にくいのでjqをinstall。

  • curl

    • もともと入ってた。そのままでGET, 今回はカード登録でPOSTもするので-Xつかったり。
    • https://qiita.com/yasuhiroki/items/a569d3371a66e365316f
    • ここで知った後、仕事でもcurl使えると楽なことがあったのでこういうの含め今後細々メモしていきたい。。。
  • HomeBrew

    • ついこの間mojaveにアップデートしてからそっとしておいたためにHomeBrewからのinstallとなりました。。。もう少しプログラミングやらの頻度を上げたい、、、
    • https://brew.sh/index_ja
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • jq
    • 業務でも使い始めました。ありがてぇ。
brew install jq
  • 送信先のボード、リストの作成(事前に作成しておく必要があります)
    • 今回は次のようなボードを作成しました。
      • ボード : サンプルボード
      • リスト : コマンドで送信したよリスト

取得

  • 練習がてらまずはボードリストを取ってきましょう。
    • UserName : trelloで使っている@〜〜の〜〜部分
    • APIKey : さっき取得したもの
    • Token : さっき取得したもの
curl "https://trello.com/1/members/<UserName>/boards?key=<APIKey>&token=<Token>"

多分すんごい色々返ってきた上めっちゃ見にくいのでfilterをかけ、ありがたいjqさんを使いましょう。

curl "https://trello.com/1/members/<UserName>/boards?key=<APIKey>&token=<Token>&fields=name" | jq

↑見切れてますが末尾あたりが変わっています。
そうすると次のような出力が得られるはず。

[
  {
    "name": "Trelloへようこそ",
    "id": "aaaaaaa"
  },
  {
    "name": "サンプルボード",
    "id": "xxxxxxx"
  },
]

idは"aaaaaaa"と"xxxxxxx"に変更してしまいました。多分それなりに長い奴が出力されているはず。
こんな感じで以下curl, jqを用いていきます。

  • ターゲットのボードにあるリストを取得します
curl "https://trello.com/1/boards/<BoardのID(上では"xxxxxxx"に当たる)>/lists?key=<APIKey>&token=<Token>&fields=name" | jq

そうすると次の感じの出力があるはず

[
  {
    "id": "ccccccc",
    "name": "コマンドで送信したよリスト"
  }
]

上でも記述しましたが、ボード、リストは事前に作成しておく必要があります。

よし!カードを投稿しよう!

上のリストのIDを取得できたところで、必要な情報は揃いました!
なのでカードを投稿しましょう!

curl -X POST "https://trello.com/1/cards?key=<APIKey>&token=<Token>&idList=<先ほど取得したListのID(上の"ccccccc"に当たる)>" -d "name=テストのカードだよ"| jq

これで、「テストのカードだよ」カードが作成されているはずです。多分。

やったね、というわけで後日macのショートカットに登録することにして、一旦ここまでとします。

お疲れ様でした。

a_a_s
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away