高级快捷指令(十一):使用网络API——开始使用网络API

捷径技巧 2020-08-12 11:51

什么是 API?

API(或应用程序接口)是用于在软件 App 之间以形式化的方式来回传递数据的接口。许多服务都提供公共 API,允许任何人从该服务发送和接收内容。使用 http:// URL 并通过互联网工作的 API 叫做网络 API。您可以在网页上向 API 发送请求以获取和发布信息。

您喜爱的所有接入互联网的 App 都是由 API 驱动的。例如,社交媒体 App 使用 API 来让您从其移动 App 中查看和发布帖子。刷新提要时,App 会提出 API 请求以获取所有帖子。为一篇帖子点赞时,App 会提出 API 请求以发布此数据。

有了在“快捷指令”中提出 API 请求的能力,您就可以超越设备上本地数据的限制,制作可以与任何具有公共 API 的网络服务交互的快捷指令。您可以构建自定快捷指令以将大量数据集中起来并按您想要的方式显示,甚至可以将数据发回 API 以更新网络服务。只要可在 API 中执行,那么也可在“快捷指令” App 中执行。


注册 API

大多数服务都需要您注册 API,然后会分配一个“密钥”以授予您访问权限。此密钥包括在 API 请求中,可让服务知道是谁提出了 API 请求。密钥是您独有的,请不要将其与任何人共享。

您可以在此注册 Dark Sky 帐户。

Dark Sky 密钥。

拥有密钥后,您就可以提出第一个 API 请求了。

某些 App、服务和内容仅在部分国家或地区可用。


在“快捷指令”中提出第一个 API 请求

若要提出第一个 API 请求,请创建指向要对话的 API “端点”的 URL,然后将 URL 传递给“获取 URL 内容”操作。快捷指令运行时,此操作会提出 API 请求。

一条 Dark Sky API 请求,其中包含带有 API 密钥的“文本”操作,之后是使用“密钥”变量指向 API 端点的 URL 操作,接下来是“获取 URL 内容”操作。

构建 API 请求

“Dark Sky 天气”端点需要按以下方式格式化的 URL 请求:

https://api.darksky.net/forecast/[YOUR_SECRET_KEY]/[LAT],[LONG]

中括号内的文本会以 API 密钥和请求天气数据的位置填充。

  • 在“快捷指令” App 中,将 Dark Sky 的 API 密钥放入第一个“文本”操作,此密钥会作为变量传递到 URL 操作中。LAT 值和 LONG 值已设为 37.8267 和 -122.4233,这是旧金山恶魔岛的坐标。(您可以将这些值更改为不同位置的坐标)。

    尝试在 URL 操作中设定魔法变量“纬度”和“经度”,使用“获取当前位置”操作并将其作为魔法变量,这样无论您在哪里运行快捷指令,都能获取本地的天气数据。

    Dark Sky API 请求快捷指令中,“获取当前位置”操作被添加到“文本”操作和 URL 操作之间。

搭配“获取 URL 内容”操作执行 API 请求

  1. 在“快捷指令” App 的快捷指令编辑器中,将“获取 URL 内容”设为“高级”。

    您可将以下 API 请求类型选项变为可用:

    • GET 允许您取回数据。

    • POST 允许您创建新数据。

    • PUT 允许您通过替换来更新数据。

    • PATCH 允许您通过修改来更新数据。

    • DELETE 允许您移除 URL 请求中指定的对象。

  2. 此示例中使用 GET 请求从 Dark Sky API 中取回数据。

    现在 URL 操作中已包含您的请求,且“获取 URL 内容”操作已设为 GET 数据,您已经准备好提出 API 请求了。

    【注】当“获取 URL 内容”操作切换到 POSTPUT 或 PATCH 时,会添加一个叫做“请求体”的新参数。“请求体”允许您将 JSON、表单或文件作为请求的一部分发送到 API。此操作可让您手动或使用变量输入新数据,然后就可以将数据发送到 API 以创建、替换或修改条目。

  3. 轻点  以测试快捷指令(快捷指令中的“快速查看”操作允许您预览 API 返回的数据)。

    Dark Sky API 请求快捷指令的结果,显示恶魔岛的天气预报。

    一眼看去,API 似乎返回了大量文本。此天气数据以 JSON(代表 JavaScript Object Notation)编码。


若要了解使用 JSON 的信息以及继续了解 Dark Sky API 示例,请参阅 在“快捷指令”中使用 JSON 的介绍

某些 App、服务和内容仅在部分国家或地区可用。