首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在获取CloudKit CKAsset URL?

正在获取CloudKit CKAsset URL?
EN

Stack Overflow用户
提问于 2015-12-01 20:44:50
回答 1查看 993关注 0票数 2

我想与不使用我的应用程序的人共享公共数据库中的CloudKit资产。在CKAsset类中,只有一个指向本地文件的fileURL属性,所以没有给出URL。

但是,在CloudKit Web Services的文档中使用there is a "referencing existing assets" requestin its' response为资产文件提供了一个downloadURL

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2016-08-13 14:01:14

如果你使用的是苹果官方CloudKit.js,下面是配置你的CloudKit访问的代码:

代码语言:javascript
复制
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令牌比使用Server- to -Server进程更好。例如,在GO中查询记录,要获取一条记录,请将请求正文组成如下

代码语言:javascript
复制
sampleRequest = []byte('{
        "resultsLimit":"4",
        "desiredKeys": ["recordTitle","recordDescription"],
        "query": {
        "recordType": "myRecord",
        "sortBy": {
        "fieldName": "rank",
        "ascending": true
    }
    }
        }')

并将其发送到以下Url

代码语言:javascript
复制
http.NewRequest("POST", ""https://api.apple-cloudkit.com/database/1/iCloud.com.yourIdentifier/production/public/records/query?ckAPIToken=YOURTOKEN", bytes.NewBuffer(RequestBody))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34020768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档