お世話になります。ご存じでしたら助けていただきたいです。
何を実現したいのかを書きましょう
サーバー上でMicrosoft Graph API から複数の添付ファイルを取得し、1レコード1フィールドに複数の添付ファイルを添付してkintoneに入れたいです。pythonでpykintoneを使用しています。
1レコードの1フィールドに取得した複数ファイルを入れたい(ここでエラー)
record.attached_file = [sf.File.upload(f, app) for f in files]
発生した問題やエラーメッセージを具体的に書きましょう
field.attached_file = [sf.File.upload(f, app) for f in files]
File "pykintone\structure_field.py", line 89, in upload name,
resp = _upload(file_or_path)
File "pykintone\structure_field.py", line 81, in _upload r = api._request("FILE", url, params_or_data=f) ^ File "pykintone\base_api.py", line 24, in _request r = requests.request("POST", url, files=params_or_data, headers=h, **self.requests_options) ^ File "requests\api.py", line 59, in request return session.request(method=method, url=url, **kwargs) ^ File "requests\sessions.py", line 575, in request prep = self.prepare_request(req) ^ File "requests\sessions.py", line 486, in prepare_request p.prepare( File "requests\models.py", line 371, in prepare self.prepare_body(data, files, json) File "requests\models.py", line 556, in prepare_body (body, content_type) = self._encode_files(files, data) ^ File "requests\models.py", line 201, in _encode_files body, content_type = encode_multipart_formdata(new_fields) ^ File "urllib3\filepost.py", line 90, in encode_multipart_formdata body.write(data)TypeError: a bytes-like object is required, not ‘dict’"}
実行したコードをコピー&ペーストしましょう
添付ファイル取得URL
url = f’https://graph.microsoft.com/v1.0/users/{userId}/messages/{message_id}/attachments/’
添付ファイル取得
res = requests.get(url, headers={“Authorization”: "Bearer " + access_token})
取得した複数の添付ファイル
files = res.json()[‘value’]
kintoneの設定
app = pykintone.app(SUBDOMAIN, APPID, API_TOKEN)
1レコードの1フィールドに取得した複数ファイルを入れたい(ここでエラー)
record.attached_file = [sf.File.upload(f, app) for f in files]
上記でエラーとなるため、kintoneに添付ファイルをinsertできません。
尚、ローカルの複数ファイルを[sf.File.upload(f, app) for f in files]を用いて入れることはできますが。ローカルに保存ではなく、サーバーで取得した複数の添付ファイルを
record.attached_file = [sf.File.upload(f, app) for f in files]
の様に入れて kintoneにinsert したいです。
お忙しいところ恐縮ですが、ご教示のほどよろしくお願いいたします。