我想使用他们的REST API(https://www.zoho.com/creator/help/api/rest-api/rest-api-add-records.html)从Zoho Creator访问数据库我读到我不能从客户端那样做(因为CORS没有实现或者沿着这些线路)并且我会从服务器上做到这一点。
所以我使用django设置了一个本地服务器,我从终端运行了一个脚本,该脚本应该将记录添加到我的zoho数据库中,但它不起作用......
我不确定脚本是否错误或者我使用服务器的方式是错误的。
服务器由django运行,我使用命令“django-admin startproject mysite”创建了一个简单的服务器,并使用“python manage.py runserver”运行服务器。
应用程序的名称是“synonyms-database”,表单是“Main_Form”,唯一的字段叫做“name”。所以使用这些信息我遵循了API指令,这是我的脚本:
import requests
payload = {'authtoken': myAPIToken, 'scope': 'creatorapi', 'name': 'test'}
response = requests.request('POST',
'https://creator.zoho.com/api/erik341/json/synonyms-
database/form/Main_Form/record/add/', json=payload)
print(response.headers)
print(response.text)
print(response.url)
我收到了这个回复:
<body>
<div>
An error has occurred. It has been reported to Zoho Creator
support. We will look into this issue .<br> Sorry for the
inconvenience caused.
<p><p>
Go to <a href='%2F'>Home</a>
</div>
</body>
如果不是json = payload我使用data = payload,响应变为:
{"code":2945,"message":"INVALID_TICKET"}
答案 0 :(得分:1)
API需要使用表单编码数据,因此您应该使用data=payload
而不是json=payload
。 URL中的json
是响应格式的格式,而不是请求。
您可以通过重新生成令牌来解决INVALID_TICKET
错误。对this post有评论,通过将网址从.eu
更改为.com
来解决错误。确保在与您的请求网址匹配的网址上生成身份验证令牌。