【问题标题】:Getting CloudKit CKAsset URL?获取 CloudKit CKAsset URL?
【发布时间】:2016-03-05 09:32:05
【问题描述】:

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

然而,在 CloudKit Web Services 的文档中,there is a "referencing existing assets" request,其中in its' response 为资产文件提供了downloadURL

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

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

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

【问题讨论】:

    标签: ios swift icloud cloudkit cloudkit-web-services


    【解决方案1】:

    如果您使用的是 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 令牌,而不是使用服务器到服务器流程。 例如,在 GO 中查询记录,要获取记录,请像这样编写您的请求正文

    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))
    

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多