PL.2023
(しんじゅく)
1
何を実現したいのかを書きましょう
ローカルにあるCSVファイルに添付ファイル(pdf/docx)があり、添付ファイル以外うまくアップロードできましたが添付ファイルができません、添付ファイルをアップロードできるよい方法があればご教授をよろしくお願い致します
以下のコードは以下のエラーでできませんでした。{“code”:“CB_OA01”,“id”:“zm13JV508UTNMWO8pWPD”,“message”:“Cannot access protected resource.”}
#!/bin/bash
set -e
appId=1
apiToken='xxxxxxxxxx'
domain='https://example.cybozu.com/'
csvFilePath='./project1.csv'
# CSVファイルの読み取りとレコードの処理
while IFS=$'\t' read -r PROJECT_ID ATTACHED_FILE; do
echo "Processing PROJECT_ID: $PROJECT_ID, ATTACHED_FILE: $ATTACHED_FILE"
# プロジェクトIDが空の場合はスキップ
if [ -z "$PROJECT_ID" ]; then
echo "Skipping due to empty PROJECT_ID."
continue
fi
# ファイルキーの取得
echo "Uploading file: $ATTACHED_FILE"
fileKey=$(curl -X POST "${domain}/k/v1/file.json" \
-H "Authorization: Bearer ${apiToken}" \
-F "file=@${ATTACHED_FILE}" | jq -r '.fileKey')
echo "File uploaded successfully. File Key: $fileKey"
# レコードの更新
curl -X PUT "${domain}/k/v1/record.json" \
-H "Authorization: Bearer ${apiToken}" \
-H "Content-Type: application/json; charset=Shift-JIS" \
-d '{
"app": '$appId',
"id": "'$PROJECT_ID'",
"record": {
"ATTACHED_FILE": [
{
"fileKey": "'$fileKey'"
}
]
}
}'
echo "Attachment uploaded for PROJECT_ID: $PROJECT_ID"
done < <(tail -n +2 "$csvFilePath")
@PL.2023 さん
こんにちは、一点気になったので回答させていただきました。
まず、エラーですが直訳すると「保護されたリソースにアクセスできません」だと思いますが、
そちらを踏まえて、ファイルのアップロード及びfilekeyを取得される部分にヘッダー情報でのapiTokenの指定方法が違うと思いました。
恐らくですが、下記のような形になるかと思われます。
fileKey=$(curl -X POST "${domain}/k/v1/file.json" \
-H "X-Cybozu-API-Token: ${apiToken}" \
-F "file=@${ATTACHED_FILE}" | jq -r ".fileKey")
PL.2023
(しんじゅく)
3
@y_minamitani9534
こんにちは、ご連絡ありがとうございます。
はい、おっしゃる通りですがご指摘コードで試してみましたが全く同じエラーがでました。
ちなみにですが、filekeyは取得できているのでしょうか?
また、jqコマンドを抜かれた状態でも試されましたでしょうか?
「いいね!」 1
PL.2023
(しんじゅく)
5
@y_minamitani9534
返信遅くなり申し訳ありません。
filekeyは正しく取得でいています。
jqコマンドを抜かれた状態では試していませんでした。
filekeyが正しい値で取得できているのであれば、恐らくjqコマンドは関係ないかなと思いますね…
眺めていて一点気になったところがございました。
ここですが、
{"record": {
"ATTACHED_FILE": [
{
"fileKey": "'$fileKey'"
}
]
}
}
恐らく、こうじゃないかなと思われます↓
{"record": {
"ATTACHED_FILE": {
"value":[
{
"fileKey": "'$fileKey'",
},
]
}
}
}
エラーメッセージから考えたら少し違うような気もしますが、一度試していただければと…
PL.2023
(しんじゅく)
7
@y_minamitani9534
ありがとうございます。
同じエラー出ました。
aaa
8
参考情報です。
エラーコード CB_OA01 で検索すると以下のページが見つかりました。
Google Apps ScriptでKintoneのユーザ一覧を取得する【GAS】
officeの杜 
403エラー「CB_OA01 : cannot access protected resource」で全てエラーになります
認証がらみの何かでしょうかね?
ただ、添付ファイル以外はアップロードできているという内容なので矛盾している気もしますが、質問文で貼り付けたヘッダーの内容では動かない内容だったのでなんとも言えない印象です。
「いいね!」 1
PL.2023
(しんじゅく)
11
@aaa
こんにちは、
情報共有ありがとうございました。
参考にさせて頂きます。
認証がらみのところですがあまり添付ファイルアップロードするさいには特に必要なさそうでした。とりあえず認証はスキップしました。
「いいね!」 1
PL.2023
(しんじゅく)
12
@t.nori
こんにちは。
情報共有ありがとうございました。参考にさせて頂きます。
共有させて頂いたコードはnode.jsですがkintoneのjavascript/cssカスタマイズには使用できないと思いますがkintoneのカスタマイズにnode.jsをどのように活用しますでしょうか?
最後に試されたコードを提示してもらってもいいですか?
ちなみにfilekeyが正常取得とはどうやって確認しましたか?
ちなみに認証できなければファイルのアップロードはできませんし、仮にアップロードできているのであれば対象の添付ファイルフィールドに対して取得したfilekeyを使って更新すれば添付ファイルフィールドにセットされるはずです。
system
(system)
クローズされました:
17
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。