File-X API 是一套可用于发布时间、获取信息流等使用File-X功能的 RESTful API。对于大部分的网页应用(包括移动应用),File-X API 是授权访问用户的File-X数据的最佳选择。
File-X API 提供了关于Event
, Plates
的富有表现力的接口,让你可以灵活地访问用户的 File-X 数据。你可以选择一种你喜欢的编程语言,通过这些API在你的应用中添加 File-X 的特色功能,如:
- 获取一个事件列表
- 创建、更新、发布、删除事件
- 修改事件的可见性,公开、仅好友可见或私密
- 获取“此时”数据流
- 获取“此地”数据流
你只需要选择一个与你的应用语言相匹配的 File-X API 客户端,并且以用户角色进行认证。
典型用例
File-X API 可以在不同的场景中使用,包括,但不限于:
- 只读的时间线
- 自动化或者编程化的事件发布
- 内嵌一个微型博客
我可以从哪去获取更多资料?
从现在开始使用这个文档来开始构建一个 File-X 应用:
- 开发者指南可以帮助你了解如何实现典型的应用场景
- API 参考 为你提供了 File-X API 中所有资源的信息以及其方法。
API 预览
File-X API 是一个网页服务。它遵循 RESTful API 规范,并且使用 JSON 作为消息体。基本的 API 特性以及使用场景将会在这个部分进行描述。如果想要了解更多,可以在 File-X API 参考中查阅 API 的资源以及方法。
关键的资源类型
File-X API 提供了以下资源类型:
- Events
- Plates
- UserFeed
- CurrentUserFeed
Events 是可变更的。事件创建时会处于“草稿”状态。草稿事件只有它的拥有者可以访问。在事件发布前,用户需要设置事件的event_time
, title
, content
。 资源拥有可以修改事件的可见性。事件在默认情况下是公开的。
Plates 是事件附件的存储单位。Plate 中包含以下媒体信息,一个 Plate 从属于一个 Event。一个 Event 可以有多个 Plate。
UserFeed 是某一特定用户已发布事件的集合。不同的用户访问后某一用户的 UserFeed 得到的数据可能会有所不同,因为用户与目标用户之间的关系可以会不一样。
CurrentUserFeed 当前用户的的事件列表,包含“草稿”以及“已发表”的事件
Auth and the File-X API
与其他 Feat REST API 一样,File-X API 使用 OAuth 2.0 来处理认证以及授权。你的应用需要指定一个或者多个 Scopes。 Scopes 是用来标记应用需要访问数据范围的字符串。这些 scopes 一组 token 一起确保数据访问安全。 一个 Scope 可以代表对单个资源的访问,也可以代表对一组资源的访问范围,例如:
- 从 File-X 中读取事件(
https://www.featapi.com/auth/file-x.readonly
) - 管理事件 (
https://www.featapi.com/auth/file-x
) - 管理草稿事件,创建、更新或者删除草稿事件,但不包括发布事件 (
https://www.featapi.com/auth/file-x.draft
)
你可以查看 为你的应用授予 File-X 权限,来更加深入地了解如何在认证条件下使用 File-X API。
Scopes
File-X API 支持许多细粒度的授权范围,以实现所需级别的访问控制。 通过请求所需的最小访问级别,用户可以更自信地授予对其 File-X 的访问权限。
示范用例
目标场景:输出当前用户的的事件时间线。为了实现这个功能,你的应用需要一下步骤:
- 使用
https://www.featapi.com/auth/file-x.readonly
授权范围,完成认证用户的授权 - 调用API GET
https://www.featapi.com/api/xfile/event/
- 在应用中处理返回的事件列表
有关实际的示例代码,请参考快速入门以获取您选择的语言。
常见用途
本节描述一些常见的用例是如何分步调用 API 进行实现的。 有关更多详细信息,请参阅相关 API 文档。
发布事件
事件是 File-X 最基础的数据单元。创建并完成事件发布,需要:
- 选择
event_time
事件发生时间,调用 Event.create 创建一个事件草稿。 - 调用 Event.update 为事件添加
title
,content
- 通过 Event.addPlate 将一个个
Plate
添加到事件中 - 调用 Event.update , 使用
{ publish: true }
来发布事件