shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Automate】kintone REST APIで1件のレコードを取得する事例

Power Automate Desktopには「APIがあるWebサービス」からデータの取得や登録などが可能な「Webサービスを呼び出します」アクションがあります。

今回は、kintone REST APIで1件のレコードを取得する事例です。Power Automate Desktopからkintone REST APIでレコード取得時の注意点も記載しました。

内容:

確認のツールは「Power Automate Desktop」(version 2.45.393.24179)です

事例の前提

この事例は、次の事例を「1件のレコードを取得する」に変更した事例です。

細かな設定が不明な場合は、以下を確認ください。

shikumika.org

設定手順

設定のアウトプットイメージ

設定イメージは次のとおりです。

kintone REST APIで1件のレコードを取得する事例で、5アクションあります

Power Automate Desktopの設定イメージ(1件のレコードを取得)

設定の説明

1.APIトークンとWebURLを変数に設定

APIトークンとWebURLを変数に設定は汎用性を持たせるためなので、次の手順「Webサービスの呼び出し」で直接入力しても構いません。

記載内容は、取得したいWebサービスの仕様に従います。

なお、この事例では以下としてます。

https://(自分のURL)/k/v1/record.json?
参考: 1件のレコードを取得する - cybozu developer network

2.「Webサービスの呼び出し」の設定

Webサービスの呼び出しは、取得したいWebサービスの仕様に従い設定します。

HTTPアクションの中に「Webサービスを呼び出します」があります。

設定する情報は、「URL/メソッド/受け入れる/コンテンツタイプ/カスタム ヘッダー/ 要求本文」などです。

「受け入れる/コンテンツタイプ」の欄は、空白は無効となっています。

この事例での設定例は、次のとおりです。

  • URL: %WebUrl%?app=140&id=3
  • メソッド: GET
  • 受け入れる: application/json 
  • コンテンツタイプ:text/plain
  • カスタム ヘッダー: X-Cybozu-API-Token:  %API_TOKEN%

「%WebUrl%」、「%API_TOKEN%」はそれぞれ設定した変数名です。

”?app=140&id=3”の部分は、app=アプリIDとレコードの番号で、URLにパラメーターを含めています

リクエストのURLにパラメータも記載しています

「Webサービスを呼び出します」の設定イメージ(URLにパラメータあり)
3.JSONをカスタムオブジェクトに変換、値を取り出し

JSONからの値の取り出しは以下と同様です。

注意点とエラー事例

注意点

Power Automate Desktopで「kintone REST API」でレコードを取得(GET)の場合、URLにパラメーターを含めた上記どおりの設定のみ成功した。

他のJSON形式を用いた設定ではエラーになってしまった。

「カスタム ヘッダーの行 '{' に無効なヘッダーがあります」のエラー

1件のレコードを取得する - cybozu developer network の記載に従い、Power Automate Desktopで、カスタムヘッダーにJSON形式で、

{
  "X-Cybozu-API-Token": "API_TOKEN"
}

といった記載をすると、PowerAutomate側の段階で

カスタム ヘッダーの行 '{' に無効なヘッダーがあります。

というエラーになってしまいました。

また、ヘッダーにJSON形式に代入された変数を設定した場合は

Web サービス: 指定された値は無効な HTTP ヘッダー文字を含んでいます。
パラメーター名:name を呼び出すことができませんでした。

というエラーとなり、こちらもPowerAutomate側の段階でエラーとなります。

 

なお、カスタムヘッダーは、「 X-Cybozu-API-Token:  %API_TOKEN% 」のままで、コンテンツタイプを「application/json」で指定して、要求本文をJSON形式としても、

HTTPステータスコード 520

参考: kintone REST APIの共通仕様 - cybozu developer network

となり、エラーレスポンスが

{"code":"CB_IL02","id":"xxxxxxxxxxxxx","message":"不正なリクエストです。"}

になってしまいました。

なお、レコードを登録する「POST」では「application/json」でJSON形式は利用できました。

 

以上、Power Automate Desktopで、kintone REST APIを使用して「1件のレコードを取得する事例」でした。

参考

その他、Power Automate Desktopでkintone REST APIの設定事例まとめを以下に記載しています。

shikumika.org