レコードの「閲覧、追加、編集、削除」権限のあるAPIトークンを発行したアプリに対して、既に有る添付ファイルを更新する処理を実装したいです。
そもそも、APIトークンで添付ファイルの更新(アップロード?)は実行できるのでしょうか?
基本的な質問ですみません。
下記のページは参考にしてますが、アップロードの権限について制限が無いのでいけるのかなぁとは思いますが、うまく試せていない状況です。
https://developer.cybozu.io/hc/ja/articles/200724665-ファイルアップロードで必須となる3つの手順
https://developer.cybozu.io/hc/ja/articles/201941824-ファイルアップロード
https://developer.cybozu.io/hc/ja/articles/201941754#step7
こちらにあるように、(閲覧権限だけの)APIトークンでファイルアップロードAPI自体は実行できます。その後のレコード更新APIには編集権限必要になりますが。
認証にフォーカスされているということであれば、何らかのプログラミング言語で外部からAPIリクエストされているのかと思いますが、APIトークンでうまくいかないということは、ユーザー/パスワードを用いた認証は成功させれれていますか。そうでないとすると、ファイルアップロードのAPI自体を成功させることが先決です。cURLだとこれでfileKeyのレスポンスを得られます。
curl -X POST 'https://subdomain.cybozu.com/k/v1/file.json' \
-H 'X-Cybozu-API-Token: CABZXchXShQipwQDL4f7FZRWQkDt2ieCVQUkLmZm' \
-F 'file=@sample.jpg'
ファイルアップロードのAPI自体を成功させるのがうまくいってないという話であれば、その原因はmultipart/form-data 形式のリクエストをうまく記述できてない可能性が考えられます。そうだとすると、3rd party SDK 含めてもSDKが提供されてない言語を利用するには、この部分を自前で書くことになりますので、その言語のドキュメントやWeb上の情報を元に記述していくことになるでしょう。SDK提供がある言語であればSDK利用するのが早いです。
**Ryu Yamashita**様
さっそくのご回答ありがとうございます。
おかげさまで、無事にAPIキーで添付ファイルの追加登録およびファイルの更新処理が実行できました。
ご指摘のとおり、処理を1つずつデバッグしてみましたところ、kintoneへファイルをアップロードした後、アップロードしたファイルをレコードに関連づける処理の書き方が悪く処理に失敗しておりました。
外部からAPIリクエストや添付ファイルの操作に不慣れだったため「そもそも実行権限が無いのでは?無駄なデバッグ作業に時間を費やしてしまうのでは?」と不安になっていたところでしたので、情報提供頂けて大変助かりました!