gpt4 book ai didi

ios - 获取 CloudKit CKAsset URL?

转载 作者:搜寻专家 更新时间:2023-11-01 05:38:24 25 4
gpt4 key购买 nike

我想与未使用我的应用程序的人共享公共(public)数据库中的 CloudKit Assets 。在 CKAsset 类中,只有一个 fileURL 属性,它指向一个本地文件,因此没有给出 URL。

然而,在 CloudKit Web 服务的文档中,there is a "referencing existing assets" request ,这in its' response为 Assets 文件提供 downloadURL

从我的应用程序调用它会给我一个 421 状态代码,描述为 in documentation作为“AUTHENTICATION_REQUIRED”,因为它需要给出一个 ckSession 参数,这是一个“经过身份验证的用户的 session 标识符”。它还传递一个 redirectURL,用户可以在其中输入他们的 iCloud 登录信息,然后被重定向回 Web 应用程序,现在有一个 session 标识符。

在应用程序中打开此 URL 不会立即返回 session 标识符,而是希望用户在收到 session ID 之前在浏览器中完成登录过程。

这似乎完全偏离了轨道,而且是错误的做法。我当然不会让我的用户通过网络界面登录 iCloud。 CloudKit Web 服务 url 唯一缺少的是 session ID。有没有办法让我使用 CloudKit 框架来获得它?或者我可以通过其他方式找到该文件的 URL 吗?

最佳答案

如果您使用的是 Apple 的官方 CloudKit.js,这里是配置您的 CloudKit 访问权限的代码:

window.addEventListener('cloudkitloaded', function() {
console.log('Cloudkit loaded');
CloudKit.configure({
locale: 'en-us',
containers: [{
containerIdentifier: 'iCloud.com.getYoursInXcode',
apiTokenAuth: {
apiToken: 'getThisInCloudkitDashboardApiAccess',
persist: true //Set cookie
},
environment: 'production'
}]
});
// Do your thing here

})

如果您在后端获取记录,最好还是获取 API token ,而不是使用服务器到服务器进程。比如在GO中查询记录,要获取一条记录,你的request body是这样写的

sampleRequest = []byte('{
"resultsLimit":"4",
"desiredKeys": ["recordTitle","recordDescription"],
"query": {
"recordType": "myRecord",
"sortBy": {
"fieldName": "rank",
"ascending": true
}
}
}')

然后发送到下面的Url

http.NewRequest("POST", ""https://api.apple-cloudkit.com/database/1/iCloud.com.yourIdentifier/production/public/records/query?ckAPIToken=YOURTOKEN", bytes.NewBuffer(RequestBody))

关于ios - 获取 CloudKit CKAsset URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com