尝试从我的本地服务器

时间:2018-04-11 08:51:22

标签: python django server zoho

我想使用他们的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"}

1 个答案:

答案 0 :(得分:1)

API需要使用表单编码数据,因此您应该使用data=payload而不是json=payload。 URL中的json是响应格式的格式,而不是请求。

您可以通过重新生成令牌来解决INVALID_TICKET错误。对this post有评论,通过将网址从.eu更改为.com来解决错误。确保在与您的请求网址匹配的网址上生成身份验证令牌。