立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

Apple 开放了 CloudKit 的 Server-to-Server 请求

  • 2016-03-09
  • 本文字数:941 字

    阅读完需:约 3 分钟

Apple 最近宣布 OSX 和 iOS 中提供访问 Apple 云平台的 Cloudkit 框架开放了 Server-to-Server 的 web 请求。这表明 Apple 解除了 CloudKit 公共数据库之前只能在 iOS 和 Mac app 到苹果的网站之间通信的限制。

CloudKit Server-to-Server 的请求在已有的功能上增加了新特性,开发者可以通过这个功能提供一个供用户直接访问他们 iCloud 数据的 web 界面。Server-to-Server 的请求旨在提供可以访问 iCloud 公共数据库的权限,也部分提供给开发者可以代替 Parse DBaaS 的另一个选择,因为 Parse DBaaS 平台最近宣布将要关闭服务。

为了从服务端进程或脚本读取 Cloudkit 公共数据库,开发者首先需要用 OpenSSL 生成一个秘钥对:

复制代码
openssl ecparam -name prime256v1 -genkey -noout -out eckey.pem

然后到 CloudKit dashboard ,找 API Access/Server-to-Server Keys 将公钥与一个 CloudKit 容器绑定。一旦公钥被存储,会分配一个 keyID,并且在 web 服务请求的子路径需要加上 keyID。Apple 提供了一些 JavaScript 代码示例演示如何使用新方法验证 Cloudkit。特别是开发者需要构造一个包含三个参数的字符串:

复制代码
[Current date]:[Request body]:[Web Service URL]

上面的字符串在 request 中会用到,正如 Apple 提供的示例代码一样:

复制代码
curl -X POST -H "content-type: text/plain" -H
"X-Apple-CloudKit-Request-KeyID: [keyID]” -H
"X-Apple-CloudKit-Request-ISO8601Date: [date]" -H
"X-Apple-CloudKit-Request-SignatureV1: [signature]" -d
'{"users":[{"emailAddress":"[user email]"}]}'
https://api.apple-cloudkit.com/database/1/[container
ID]/development/public/users/lookup/email

Stack Overflow 上的一些开发者提供了 JavaScript、PHP 和 Python 的示例代码。
Cloudkit 框架提供给开发者一些服务,包括认证,私有的和公共的数据库,结构化存储比如说基于 plist 的资源存储。

查看英文原文: Apple Open CloudKit to Server-to-Server Requests


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者(已满),InfoQ 读者交流群(#2)InfoQ 好读者)。

2016-03-09 18:001724

评论

发布
暂无评论
发现更多内容

docker学习笔记(一)

Studying_swz

10月月更

如何监测MySQL是否命中索引?

乌龟哥哥

10月月更

CAN与CAN FD通信之间存在的问题

不脱发的程序猿

汽车电子 CAN总线 CAN FD总线 CAN与CAN FD通信问题 CAN与CAN FD通信

nginx快速入门

Studying_swz

10月月更

docker学习笔记(二)

Studying_swz

Docker 10月月更

【内网渗透】一次简单内网靶场渗透

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

Centos7 搭建Jupyter NoteBook教程

Yeats_Liao

后端 虚拟机 10月月更

牛客刷题系列(完全数计算,扑克牌大小)

雪芙花

c c++ 10月月更

【资损】资损防控的系统规范之服务接口类设计

小明Java问道之路

架构 微服务 金融 10月月更 资损

RefectiveFeign

急需上岸的小谢

10月月更

区块链架构的层级:第 0、1、2、3 层介绍

devpoint

区块链 10月月更

运维服务体系架构

阿泽🧸

10月月更 运维服务

聊聊 K8S:K8S集群搭建实战

老周聊架构

k8s 10月月更

一文搞懂CAN和CAN FD总线协议

不脱发的程序猿

汽车电子 通信协议 CAN总线 CAN和CAN FD总线协议 CAN FD总线

什么是IP路由?思科与华为在IP路由配置上有啥区别?

wljslmz

路由器 动态路由 静态路由 10月月更 IP 路由

基础结构:链表 回文链表

梦笔生花

Python 10月月更 回文数

一份经过时间检验的 Laravel PHPUnit 测试经验分享

乌龟哥哥

10月月更

深入理解java中的自动装箱与拆箱

乌龟哥哥

10月月更

【愚公系列】2022年10月 Go教学课程 033-结构体方法重写、方法值、方法表达式

愚公搬代码

10月月更

Centos7 搭建单机Spark分布式集群

Yeats_Liao

后端 虚拟机 10月月更

公司没钱了,工资发不出来,作为员工怎么办?

石云升

离职 职场经验

Windows Update MiniTool 20.12.2016 控制Window更新下载及使用教程

Yeats_Liao

工具 windows 10月月更

ZooKeeper基本架构

穿过生命散发芬芳

zookeeper 10月月更

2022-10-19:一个数组如果满足 : 升降升降升降... 或者 降升降升...都是满足的 给定一个数组, 1,看有几种方法能够剔除一个元素,达成上述的要求 2,数组天然符合要求返回0 3,剔

福大大架构师每日一题

算法 rust 福大大

cstdio的源码学习分析11-格式化输入输出函数fprintf---format解析跳转表逻辑分析

桑榆

c++ 源码刨析 10月月更

feign的动态代理

急需上岸的小谢

10月月更

Spring Boot「09」Property 高级特性

Samson

Java 学习笔记 Spirng spring-boot 10月月更

Pixel系列还能打,靠的是什么?

脑极体

人工智能

如何进行项目管理?

老张

项目管理

Feign的整体流程

急需上岸的小谢

10月月更

利用Babel自动生成“Attribute”文档

小鑫同学

前端 markdown 插件开发 babel 10月月更

Apple开放了CloudKit的Server-to-Server请求_移动_Sergio De Simone_InfoQ精选文章