Pythonによるファイルのアップロード で、fileKeyの取得ができましたので、添付ファイルにするまでのコードを書きました。
#!/usr/bin/python
coding:utf-8
import requests
import json
URL = “https://xxxxx.cybozu.com:443” # kintoneのサブドメイン(xxx.cybozu.com)
APP_ID = “17” # kintoneのアプリID
API_TOKEN = “APP TOKEN” # kintoneのAPIトークン
KNT_PASS = “xxxxxx” # ログインネーム:パスワード をbase64でエンコード
#KINTONEアプリのフィールドコード
#添付ファイル Attch
class KINTONE:
def UploadToKintone(self, url, knt_pass,path,filename):
img = open(path + filename, ‘rb’)
files={‘file’:(filename,img,‘image/jpeg’)}
headers = {“X-Cybozu-Authorization”: knt_pass , ‘X-Requested-With’: ‘XMLHttpRequest’}
resp=requests.post(url+“/k/v1/file.json”,files=files,headers=headers)
return resp
def PostToKintone(self,url,appId,apiToken,filekey):
record = {
“Attch”:{‘type’:“FILE”,“value” :[{‘fileKey’:filekey}]}
#他のフィールドにデータを挿入する場合は’,‘で区切る
}
data = {‘app’:appId,‘record’:record}
headers = {“X-Cybozu-API-Token”: apiToken, “Content-Type” : “application/json”}
resp=requests.post(url+’/k/v1/record.json’,json=data,headers=headers)
return resp
if __name__ == ‘__main__’:
Path=‘/tmp/’ #ファイル保存パス
FileName=‘image.jpg’ #ファイル名
knt=KINTONE()
resp=knt.UploadToKintone(URL, KNT_PASS,Path,FileName)
txt=json.loads(resp.text)
FileKey=txt[‘fileKey’]
resp=knt.PostToKintone(URL, APP_ID, API_TOKEN,FileKey)
print resp.text