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))
Другие вопросы по тегам