# ローカルCSVにあるPDFファイル含むすべてのデータをkintoneアプリにアップロードしたい

**URL:** <https://community.cybozu.dev/t/topic/8125>\
**Category:** kintone 開発相談\
**Created:** [2023 年 9 月 19 日午後 2:16 UTC](https://community.cybozu.dev/t/topic/8125 "2023-09-19T14:16:17Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![PL.2023](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@PL.2023](https://community.cybozu.dev/u/PL.2023)\
**Post date:** [2023 年 9 月 19 日午後 2:16 UTC](https://community.cybozu.dev/t/topic/8125/1 "2023-09-19T14:16:17Z")

</div>

### 何を実現したいのかを書きましょう

ローカルにあるCSVファイルに添付ファイル(pdf/docx)があり、添付ファイル以外うまくアップロードできましたが添付ファイルができません、添付ファイルをアップロードできるよい方法があればご教授をよろしくお願い致します

以下のコードは以下のエラーでできませんでした。{“code”:“CB\_OA01”,“id”:“zm13JV508UTNMWO8pWPD”,“message”:“Cannot access protected resource.”}

```javascript
#!/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")

```

---

<div class="post-metadata">

**Author:** ![y\_minamitani9534](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/y_minamitani9534/32/462_2.png) [@y\_minamitani9534](https://community.cybozu.dev/u/y_minamitani9534)\
**Post date:** [2023 年 9 月 19 日午後 11:52 UTC](https://community.cybozu.dev/t/topic/8125/2 "2023-09-19T23:52:22Z")

</div>

@PL.2023 さん

こんにちは、一点気になったので回答させていただきました。  
まず、エラーですが直訳すると「保護されたリソースにアクセスできません」だと思いますが、  
そちらを踏まえて、ファイルのアップロード及びfilekeyを取得される部分にヘッダー情報でのapiTokenの指定方法が違うと思いました。  
恐らくですが、下記のような形になるかと思われます。

```javascript
  fileKey=$(curl -X POST "${domain}/k/v1/file.json" \
    -H "X-Cybozu-API-Token: ${apiToken}" \
    -F "file=@${ATTACHED_FILE}" | jq -r ".fileKey")

```

---

<div class="post-metadata">

**Author:** ![PL.2023](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@PL.2023](https://community.cybozu.dev/u/PL.2023)\
**Post date:** [2023 年 9 月 20 日午前 12:02 UTC](https://community.cybozu.dev/t/topic/8125/3 "2023-09-20T00:02:03Z")

</div>

@y_minamitani9534  
こんにちは、ご連絡ありがとうございます。  
はい、おっしゃる通りですがご指摘コードで試してみましたが全く同じエラーがでました。

---

<div class="post-metadata">

**Author:** ![y\_minamitani9534](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/y_minamitani9534/32/462_2.png) [@y\_minamitani9534](https://community.cybozu.dev/u/y_minamitani9534)\
**Post date:** [2023 年 9 月 20 日午前 12:49 UTC](https://community.cybozu.dev/t/topic/8125/4 "2023-09-20T00:49:25Z")

</div>

ちなみにですが、filekeyは取得できているのでしょうか？  
また、jqコマンドを抜かれた状態でも試されましたでしょうか？

---

<div class="post-metadata">

**Author:** ![PL.2023](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@PL.2023](https://community.cybozu.dev/u/PL.2023)\
**Post date:** [2023 年 9 月 20 日午前 8:09 UTC](https://community.cybozu.dev/t/topic/8125/5 "2023-09-20T08:09:21Z")

</div>

@y_minamitani9534  
返信遅くなり申し訳ありません。  
filekeyは正しく取得でいています。  
jqコマンドを抜かれた状態では試していませんでした。

---

<div class="post-metadata">

**Author:** ![y\_minamitani9534](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/y_minamitani9534/32/462_2.png) [@y\_minamitani9534](https://community.cybozu.dev/u/y_minamitani9534)\
**Post date:** [2023 年 9 月 20 日午前 8:34 UTC](https://community.cybozu.dev/t/topic/8125/6 "2023-09-20T08:34:26Z")

</div>

filekeyが正しい値で取得できているのであれば、恐らくjqコマンドは関係ないかなと思いますね…  
眺めていて一点気になったところがございました。  
ここですが、

```javascript
{"record": {
        "ATTACHED_FILE": [
          {
            "fileKey": "'$fileKey'"
          }
        ]
    }
}

```

恐らく、こうじゃないかなと思われます↓

```javascript
{"record": {
        "ATTACHED_FILE": {
            "value":[
              {
                "fileKey": "'$fileKey'",
              },
            ]
          }
      }
  }

```

エラーメッセージから考えたら少し違うような気もしますが、一度試していただければと…

---

<div class="post-metadata">

**Author:** ![PL.2023](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@PL.2023](https://community.cybozu.dev/u/PL.2023)\
**Post date:** [2023 年 9 月 20 日午前 11:06 UTC](https://community.cybozu.dev/t/topic/8125/7 "2023-09-20T11:06:06Z")

</div>

@y_minamitani9534  
ありがとうございます。  
同じエラー出ました。

---

<div class="post-metadata">

**Author:** ![aaa](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/aaa/32/277_2.png) [@aaa](https://community.cybozu.dev/u/aaa)\
**Post date:** [2023 年 9 月 21 日午前 12:39 UTC](https://community.cybozu.dev/t/topic/8125/8 "2023-09-21T00:39:20Z")

</div>

参考情報です。  
エラーコード CB\_OA01 で検索すると以下のページが見つかりました。  
Google Apps ScriptでKintoneのユーザ一覧を取得する【GAS】 🌴 officeの杜 🥥

> **[Google Apps ScriptでKintoneのユーザ一覧を取得する【GAS】 🌴 officeの杜 🥥](https://officeforest.org/wp/2023/03/31/google-apps-script%E3%81%A7kintone%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E4%B8%80%E8%A6%A7%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/)**
>
>   仕事で各種サービスの現在のライセンス割当状況を一括で集めるプログラムを作成中。KintoneもOAuth2.0認証が出来るので、それでらくらくユーザ一覧の情報が取得できるかと思いきや、以外な問題点にぶつかりちょっと沼ったので記

> 403エラー「CB\_OA01 : cannot access protected resource」で全てエラーになります

認証がらみの何かでしょうかね？

ただ、添付ファイル以外はアップロードできているという内容なので矛盾している気もしますが、質問文で貼り付けたヘッダーの内容では動かない内容だったのでなんとも言えない印象です。

---

<div class="post-metadata">

**Author:** ![PL.2023](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@PL.2023](https://community.cybozu.dev/u/PL.2023)\
**Post date:** [2023 年 9 月 21 日午前 1:48 UTC](https://community.cybozu.dev/t/topic/8125/11 "2023-09-21T01:48:20Z")

</div>

@aaa  
こんにちは、  
情報共有ありがとうございました。  
参考にさせて頂きます。  
認証がらみのところですがあまり添付ファイルアップロードするさいには特に必要なさそうでした。とりあえず認証はスキップしました。

---

<div class="post-metadata">

**Author:** ![PL.2023](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@PL.2023](https://community.cybozu.dev/u/PL.2023)\
**Post date:** [2023 年 9 月 21 日午前 1:52 UTC](https://community.cybozu.dev/t/topic/8125/12 "2023-09-21T01:52:35Z")

</div>

@t.nori  
こんにちは。  
情報共有ありがとうございました。参考にさせて頂きます。  
共有させて頂いたコードはnode.jsですがkintoneのjavascript/cssカスタマイズには使用できないと思いますがkintoneのカスタマイズにnode.jsをどのように活用しますでしょうか？

---

<div class="post-metadata">

**Author:** ![aaa](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/aaa/32/277_2.png) [@aaa](https://community.cybozu.dev/u/aaa)\
**Post date:** [2023 年 9 月 21 日午前 2:23 UTC](https://community.cybozu.dev/t/topic/8125/13 "2023-09-21T02:23:09Z")

</div>

> [@PL.2023](#):
>
> 認証がらみのところですがあまり添付ファイルアップロードするさいには特に必要なさそうでした。とりあえず認証はスキップしました。

すみません。意味がわかりませんでした。

---

<div class="post-metadata">

**Author:** ![y\_minamitani9534](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/y_minamitani9534/32/462_2.png) [@y\_minamitani9534](https://community.cybozu.dev/u/y_minamitani9534)\
**Post date:** [2023 年 9 月 21 日午前 2:36 UTC](https://community.cybozu.dev/t/topic/8125/14 "2023-09-21T02:36:40Z")

</div>

最後に試されたコードを提示してもらってもいいですか？  
ちなみにfilekeyが正常取得とはどうやって確認しましたか？  
ちなみに認証できなければファイルのアップロードはできませんし、仮にアップロードできているのであれば対象の添付ファイルフィールドに対して取得したfilekeyを使って更新すれば添付ファイルフィールドにセットされるはずです。

---

<div class="post-metadata">

**Author:** ![PL.2023](https://avatars.discourse-cdn.com/v4/letter/p/8491ac/32.png) [@PL.2023](https://community.cybozu.dev/u/PL.2023)\
**Post date:** [2023 年 9 月 21 日午前 2:58 UTC](https://community.cybozu.dev/t/topic/8125/16 "2023-09-21T02:58:15Z")

</div>

ありがとうございます。理解しました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 9 月 29 日午前 12:33 UTC](https://community.cybozu.dev/t/topic/8125/17 "2023-09-29T00:33:38Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
