CloudKit API с Python
Мое приложение для iOS использует CloudKit в качестве бэкэнда. Приложение в основном собирает простую информацию о пользователе (имя, компания, адрес электронной почты телефона).
Я хотел бы экспортировать все эти данные с панели мониторинга cloudkit в файл csv, чтобы затем я мог загрузить эти данные в другую базу данных.
Я последовал за этим: https://github.com/lionheart/requests-cloudkit для проверки подлинности моего API.
Тем не менее, я не могу понять, как запросить и получить записи из моей базы данных.
Когда я выполню:
print cloudkit.public.zones.list()
Возвращает:
{u'zones': [{u'atomic': False, u'zoneID': {u'ownerRecordName': u'_17e6f384d00f4e11aeee6280a48f6724', u'zoneName': u'_defaultZone'}}]}
Но я хочу, чтобы он вернул все записи типа "Учреждение".
Любая помощь высоко ценится!
Спасибо!
2 ответа
Решение от Alexis Le Baron работает для меня, но мне пришлось установить базу кода request-cloudkit из git, поскольку зафиксированная версия является более старой.
pip install git+https://github.com/lionheart/requests-cloudkit.git
Кто-то упомянул об этом в проблемах git, но, похоже, автор не исправил.
Эта работа для меня:
from requests_cloudkit import CloudKitAuth
from restmapper import restmapper
import json
KEY_ID = 'KEY_ID_APPLE'
SECRET_FILE_KEY = 'PATH_SECRET_FILE_KEY'
AUTH = CloudKitAuth(KEY_ID, SECRET_FILE_KEY)
PARAMS = {
'query':{
'recordType': 'PRODUCT_TYPE' #for example 'Users'
},
}
CloudKit = restmapper.RestMapper("https://api.apple-cloudkit.com/database/[version]/[container]/[public or production...]/")
cloudkit = CloudKit(auth=AUTH)
response = cloudkit.POST.public.records.query(json.dumps(PARAMS))