问题标签 [cloudkit-js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
247 浏览

vue.js - 将 CloudKit JS 添加到 Vue 项目

我正在尝试将 CloudKit JS 添加到一个新的 Vue 项目中。理想情况下,我可以从我的应用程序中的任何组件访问 CloudKit 的功能。我是 Vue 的新手,所以请放轻松。:)

到目前为止,我已经尝试将以下内容放入main.js

这给了我 cloudkit.js 中的脚本错误:

TypeError:无法读取未定义的属性“ArrayBuffer”

所以然后我读了这个 SO 帖子并尝试了这个App.vue

然后我可以配置 CloudKit 并在里面使用它App.vue,但是我不清楚如何在我的所有组件中使用 CloudKit,而不像在mounted()上面的函数中那样重新定义它。

如何导入 CloudKit 并使其在全球的 Vue 应用程序中可用?

0 投票
2 回答
65 浏览

javascript - 链接 Promise 并在它们之间传递参数

我是 Node/Express 的新手,正在尝试使用 Promises 来执行对 Apple CloudKit JS API 的连续 API 调用。

我不清楚如何按顺序排列函数并将它们各自的返回值从一个函数传递到下一个函数。

这是我到目前为止所拥有的:

我在接近尾声时收到一个错误:.then(saveRecord(record))它说record未定义。我认为它会以某种方式从先前的承诺中得到回报。

看起来这应该比我做的更简单,但我很困惑。resolve当每个 Promise 有不同的/结果时,如何让多个 Promise 像这样链接在一起reject

0 投票
1 回答
671 浏览

ios - 我们可以为 Cloudkit JS 创建一个 API 令牌,以访问共享数据而无需身份验证

我创建了一个 iCloud 用户 webuser@somedomain.com 然后我与该用户共享了特定记录。

我想要做的是让一个网站使用该用户仅访问它可以访问的共享记录,但不让他通过 iCloud 与 Apple 进行身份验证。原因是我想在不要求用户登录/注册 Apple iCloud 的情况下控制网站可以做什么以及可以访问什么,并且我不希望每个访问该网站的用户都必须登录 Apple ID . 我虽然使用 web 服务的 cloudkit js 可能有可能,但似乎服务器到服务器的密钥只能访问公共数据库。

我对 JS 不太熟悉,我正试图让 Web 开发人员访问我的记录。

该主题似乎不是很受欢迎,并且那里没有太多信息。请不要只说“不,这不可能”。给我一点信息。

0 投票
1 回答
257 浏览

node.js - 如何使用资产字段保存记录使用服务器到服务器 cloudkit.js

我想使用服务器到服务器的 cloudkit js。用资产字段保存记录。
Asset 字段是一个 m4a 音频。保存后,音频文件损坏无法播放

Apple's Doc 不清楚 Asset 字段。
在保存到数据库的记录中,Asset 字段的值必须是 window.Blob 类型。在上面的代码片段中,assetFile 变量的类型是 window.File。
文档: https ://developer.apple.com/documentation/cloudkitjs/cloudkit/database/1628735-saverecords

但是在 nodejs 中,没有Blob.File,我用这样的代码填充了它:

记录保存成功。 成功 但是当我从 icloud.developer.apple.com/dashboard 下载音频时。
音频文件已损坏,无法播放
它出什么问题了。谢谢你的回复。

0 投票
0 回答
65 浏览

node.js - 无法仅在没有 serverToServerKeyAuth 的情况下使用 apiTokenAuth 对 CloudKit JS 进行身份验证

我正在使用公共数据库上的 CloudKit 使用存储在 iCloud 中的数据在 Node 中构建一个 Web。要查询我创建了一个apiToken和一个的数据serverToServerKey。对于第一个,我有一个字符串,但对于服务器到服务器的身份验证,我有一个pem包含私钥的文件。要配置 CloudKit,我正在执行以下操作:

这显然不会产生任何问题,我可以在容器中查询数据,并且我的 Web 应用程序在本地正常工作。

前一个片段位于我的index.js文件中,当我从 iCloud 获取数据时,将其传递给我的 HTML 文件,然后使用 EJS 渲染它。

现在我将其转移到生产中,我有一些疑问和问题。据我所知,我无法将.pem文件移动到服务器,因为它包含一个私钥,但现在它在后端,所以我不知道它是否会公开。

是否有可能对使用我的网络应用程序的用户进行身份验证apiToken。用户只需要读取数据而不是修改或创建,因此我不需要识别它们。

我是在问一些不可能的事情还是有人做过?我还没有找到任何有关此的信息。当我尝试使用之前的代码片段对用户进行身份验证时,仅使用apiTokenAuth并删除serverToServerKeyAuth我得到一个AUTHENTICATION_ERROR.

0 投票
1 回答
24 浏览

cloudkit - 无法连接 CloudKit-JS CONFIGURATION_ERROR

我正在尝试设置 Cloudkit-JS 以通过 Web 浏览器访问现有的 Cloudkit 数据库。数据库本身工作正常,我有一个 iOS 应用程序可以毫无问题地连接到数据库。

我在 Cloudkit 仪表板中生成了一个 API 令牌,并将其设置为允许任何域。我不知道它是否重要,但我正在尝试通过本地 html 文件来解决这个问题。它不在网络服务器上运行。

对 getDefaultContainer() 的调用会在浏览器控制台中触发以下错误消息。

关于下一步尝试什么的任何想法?

0 投票
1 回答
49 浏览

cloudkit - 如何使用 Cloudkit JS 保存 CLLocation

我正在使用 Cloudkit JS 将数据保存到公共数据库。当字段都是字符串时,它很容易做到。我现在正试图弄清楚当字段类型是 CLLocation 时如何保存数据。不知何故,我需要构造 JavaScript 以发送纬度和经度值。

看到???在下面的代码示例中;

有谁知道如何获取经纬度坐标并在上面的代码中表示它们?

0 投票
1 回答
200 浏览

icloud - Cloudkit JS - 是否可以在不使用 iCloud 仪表板的情况下动态生成 Api 令牌

我需要从 web 访问 iCloud 容器私有数据库数据,所以我使用 cloudkit js,我可以使用containerIdentifier和访问 iCloud 容器私有数据apiTokenAuth.apiToken

apiToken 是使用 iCloud 仪表板生成的

但我的要求是我需要获取由不同用户上传的 iCloud 容器私有数据,这意味着我的 ios 开发人员使用 xcode 创建一个容器,并对使用我的应用程序的每个用户以及当用户上传他们的数据时使用相同的容器名称和它将存储到他们(用户)自己的 icloud 容器私有数据库中。

好的,在这种情况下,我将如何从 Web 访问不同用户的私有数据库,其中 apiToken 在任何地方之前都没有生成?

  • 是否可以使用 xCode 生成 ApiToken?像容器ID!
  • 或任何其他方式来访问 iCloud 数据库?像 cloudkit js!
  • 或者使用 REST API 生成 iCloud api 令牌的任何其他方式?使用苹果用户凭据

我不是IOS开发人员,所以如果我理解有任何错误,对不起!

0 投票
2 回答
422 浏览

javascript - CloudKit JS Hello World 示例:未找到任何身份验证方法

我正在研究 Apple 的CloudKit 目录示例,我只是想让身份验证工作。我想在浏览器窗口(不是 Node JS)中运行这个 JS 代码。我从他们的网站上获取了他们的代码,如下所示:

但我不断收到这两个错误:

紧接着...

我觉得这应该是容易的部分,但我什setUpAuth()至无法让第一个功能工作。我也尝试过我自己的 CloudKit containerIdentifierapiToken但我得到了同样的错误。

有谁知道我做错了什么?

0 投票
1 回答
104 浏览

cloudkit - Node JS 上的 CloudKit 服务器到服务器身份验证出现 401 错误

我正在尝试使用服务器到服务器身份验证查询我的公共 CloudKit 数据库。我已经根据 Apple 的文档生成了密钥,但无论我做什么,我都会收到此错误:

据我所知,我已经按照文档设置了所有内容,但显然我做错了。到目前为止,这是我的 Node 应用程序中的内容:

我已经查看了这篇有用的 SO 帖子,但我仍然卡住了。

谁能看到我可能做错了什么?