解析REST API:使用ACL查询类对象的正确方法(python)
我在Parse数据库里有三个类。出于某种原因,从第二个类ContactsData获取数据时总是返回空结果。如果有人能提供一些关于这个问题的见解,那就太好了!
1. 默认的“用户”类
从这个类获取数据没有问题,按照https://parse.com/docs/rest#users上的例子来做就行。
ACL列是空的。
2. 自定义的“ContactsData”类。用户可以通过我们的iOS应用添加联系人的姓名和电话。
自定义列:姓名(字符串),电话(数字)。
ACL设置为写入:真,读取:真。
我想做的是:使用python的REST API获取某个用户的所有联系人。
方法1:
import json,httplib
import apikeys
import dataset
MY_CLASS = '/1/classes/ContactsData'
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('GET', MY_CLASS, '', {
"X-Parse-Application-Id": apikeys.PARSE_APP_ID,
"X-Parse-REST-API-Key": apikeys.PARSE_REST_API_KEY,})
parseData = json.loads(connection.getresponse().read())
print parseData
输出:
{'results':[]}
即使这个类里有对象,我也一直得到这个结果。
方法2
我还尝试了MY_CLASS = '/1/classes/ContactsData/ABCDEFG',其中ABCDEFG是某个对象的objectId。
输出:
{'code': 101, 'error': 'requested resource was not found'}
3. 自定义的“Testing”类
和MY_CLASS完全一样。只是我没有使用ACL,而是直接从Parse仪表板创建了对象。这次,我能够使用MY_CLASS = '/1/classes/Testing'获取数据。
1 个回答
2
你在使用REST调用的时候,没有登录用户或者会话令牌,所以你只能使用默认的权限。除非你设置了这个类允许匿名读取,而且行的访问控制列表(ACL)也没有限制,否则你是无法获取任何数据的。
如果你想以一个有读取权限的用户身份进行请求,你需要先登录,然后在请求的头部使用会话令牌。
更多信息可以在这里找到: