Api の記法について

#1

連携したいサービスの都合でAPIの記法を変えたいです。
–data-urlencodeではなく、-dを使ってjsonで記述したいのですが、
対応してるでしょうか?

OKな場合

curl -H "Authorization: Bearer 0/beebfahogeeb05adbc" \
https://app.asana.com/api/1.0/tasks \
--data-urlencode "name=Incident" \
--data-urlencode "notes=hoge" \
--data-urlencode "projects=111821772381982"

ダメだったやつ1

curl -H '{"Authorization:" "Bearer 0/beebfahogeeb05adbc"}' \
https://app.asana.com/api/1.0/tasks \
-d '{"data": {"name": "Incident","notes": "hoge","projcet": "111821772381982"}}'

ダメだったやつ2

curl -H '{"Authorization:" "Bearer 0/beebfahogeeb05adbc"}' \
https://app.asana.com/api/1.0/tasks \
-d '{"name": "Incident","notes": "hoge","projcet": "111821772381982"}'

その時に発生したエラー

{"errors":[{"message":"Could not interpret {\"data\": {\"name\": \"Incident\",\"notes\": \"hoge\",\"projcet\": \"111828089080\"}} as an identifier in {\"data\": {\"name\": \"Incident\",\"notes\": \"hoge\",\"projcet\": \"111828089080\"}}.","help":"For more information on API status codes and how to handle them, read the docs on errors: https://asana.com/developers/documentation/getting-started/errors"}]}%
#2

@You1024 さん、コメントありがとうございます。
https://asana.com/developers/documentation/getting-started/input-output-options の JSON の例を参考にして、 -H "Content-Type: application/json" をつけるとうまくいきました。
プロジェクトは複数の場合もあるので projects にする必要があるようです。
以下が、私が試したコマンドです。私はアクセストークンを Mac の環境変数にして $ASANA_ACCESS_TOKEN で参照できるようにしています。

curl -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://app.asana.com/api/1.0/tasks \
-d '{"data": {"name": "Incident","notes": "hoge","projects": "XXXXXXXXXXXXXX"}}'

例の中にアクセストークンが記載されていますが、短いのでおそらく完全なものではないですよね?
トークンの機密性についてはすでにご存知だと思いますが、念の為ご確認です。

#3

@ShunS

ご教示ありがとうございます。
それで試してご連絡します。

また、Tokenは実際のものではありません。私が適当に記載したものです。
ご注意ありがとうございます。

1 Like