yui1
1
何を実現したいのかを書きましょう
Power Automate Desktopの「Webサービスを呼び出します」アクションを使って、kintoneのレコード削除APIを実行しようとしています。設定内容は以下の通りです。
- URL:
https://[サブドメイン].cybozu.com/k/v1/records.json
- メソッド: DELETE(POSTも試しましたが同じ結果)
- 受け入れる: application/json
- カスタムヘッダー: X-Cybozu-API-Token: [APIトークン]
- コンテンツタイプ: application/json
- 要求本文:
{
"app": 822,
"ids": [58]
}
実行すると以下のエラーが返ってきます。
{"code":"CB_IL02","id":"KZ2eTVRYapWwcPZwUcZE","message":"不正なリクエストです。"}
試したこと:
- メソッドをDELETEからPOSTに変更し、以下のリクエストURLに変更
https://[サブドメイン].cybozu.com/k/v1/records/delete.json
⇒「このリンクは不正です」の404 Not Foundエラー
-
ヘッダーにContent-Typeを追加
-
APIトークンの権限を確認(削除権限あり)
-
「要求本文をエンコードします」はオフ
期待する結果:
質問:
同じ経験をされた方や、正しい設定をご存じの方がいれば教えてください。
「いいね!」 1
puppet
2
Power Automate Desktopの利用者でないのに恐縮ですが、、、
一件問題なさそうな設定なのに「不正なリクエストです。」と返却されているので、
リクエストURLにパラメーターを含める方法をだとどうなるでしょうか?
("ids=N"の列挙がかなり面倒になりますが)
↓別のREST APIでもリクエストURLに含めるパターンのほか、「要求の本文」に含める場合でもうまく処理できているようなので、"app": "822"などのように"で囲ってみるのも良いかもしれません。
Power Automate for desktop から kintone REST API を使用してレコード取得とレコード登録を行う #PowerAutomateDesktop - Qiita
私も実践したことは無いので推測ですが、
@puppet さんが挙げられている Qiita の記事にもある通り「要求本文をエンコードします」のチェックは外さないといけないと思います。手元の Power Automate で「Webサービスを呼び出します」アクションをフローに追加したら既定で ON だったので、そこを変えれば行けるかも?
yui1
4
ご返信ありがとうございます。
2点とも検証しましたが、同様のCB_IL02エラーでした…。
変更後URL
https://サブドメイン.cybozu.com/k/v1/records.json?app=822&ids[0]=58
他のアクションにて、メソッド「POST」でのレコード追加、メソッド「GET」でのレコード読み取りをしていますが、「要求本文」にて成功しております。(画像)
"app": "822"のように"で囲ってみましたが、やはり同様のエラーでした。
yui1
5
ご返信ありがとうございます。
試したことに記載し忘れていましたが、「要求本文をエンコードします」はオフにしています…。
気になって私も Power Automate でいろいろ試してみたんですが、 @yui1 さんと一緒でなぜか DELETE だけうまく動かないですね……。 Power Automate 側の制御できない何かしらの仕様があるのかも。
別のサーバーか何かで、 POST や DELETE がどういう通信をしているか検証したら、もしかしたらわかるかも……
yui1
7
Power Automate Desktopでのレコード削除について、以下の方法で解決しました。
「Webサービスを呼び出します」アクションではなく、「PowerShellスクリプトの実行」アクションを使い、以下の Invoke-RestMethod コマンドを実行することで、レコード削除が成功しました。
$headers = @{
"X-Cybozu-API-Token" = "APIトークン"
"Content-Type" = "application/json"
}
$body = @{
app = 822
ids = @(%CurrentItem3%)
} | ConvertTo-Json
Invoke-RestMethod `
-Uri "https://サブドメイン.cybozu.com/k/v1/records.json" `
-Method Delete `
-Headers $headers `
-Body $body
「Webサービスを呼び出します」アクションでDeleteが正常に動作しない理由は不明ですが、Power Automate Desktopの仕様がkintoneのAPIと相性が悪い可能性があります。
「いいね!」 4
system
(system)
クローズされました:
8
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。