Party API 是一组通过使用Party功能进行发送消息、添加好友、建立群组等社交互动的RESTful API。对于大部分的网页应用(包括移动应用),Party API 是授权访问用户的Party数据的最佳选择。
Party API提供了关于联系人列表Contact List、群组Group、聊天消息Message等的数据接口,让你可以灵活地访问用户的 Party 数据。你可以通过这些API在你的应用中添加 Party的特色功能,如:
- 获取Inbox、Archive区域的联系人列表
- 添加用户为Party好友,以及其他相关的互动操作,包括:接受、拒绝、撤回、拉黑
- 群组相关的互动操作,包括:创建群组、重命名群组、添加成员、移除成员、解散群组、恢复群组、拉黑群组、合并群组的请求和处理
- 发送私人消息、群组消息(分为公聊和私聊两种)、广播消息
- 查询消息历史记录
- 标记联系人的消息为已读(清除小红点)
典型用例
Party API 可以在不同的场景中使用,包括,但不限于:
- 实时聊天的应用
- 自动化或者编程化的消息发送
- 建立公共或特定主题的讨论群组
我可以从哪去获取更多资料?
从现在开始使用这个文档来开始构建一个Party应用:
- 开发者指南可以帮助你了解如何实现典型的应用场景
- API 参考为你提供了 Party API 中所有资源的信息以及其方法。
API 预览
Party API 是一个网页服务。它遵循 RESTful API 规范,并且使用 JSON 作为消息体。基本的API特性以及使用场景将会在这个部分进行描述。如果想要了解更多,可以在Party API 参考中查阅 API 的资源以及方法。
关键的资源类型
Party API 提供了以下资源类型:
- Contact List
- Message
- Group
- GroupMember
ContactList 是联系人列表,对任何目标对象进行Party互动操作前必须先获取联系人列表。联系人列表包含两种实例对象,分别为用户和群组。同时联系人列表也分为Inbox和Archive两种区域,Inbox是会话区域,包含用户的好友、正常群组、36小时内联系过的陌生人实例对象,Archive是归档区域,包含Inbox的实例对象,还有陌生人、已解散群组、已拉黑群组实例对象。
Message 是消息数据。根据不同类型的消息,有不同的作用和创建方法,以message_type属性来区分。消息可以是用户在输入框填写文字,向指定联系人对象作发送消息。也可以是通过用户执行相关互动产生的消息,比如Party的添加好友操作,系统向目标用户发送好友请求消息等等。
Group 是群组。用户通过提交两名用户的ID,创建至少3人成员的群组。所有成员可以向群组发送消息,并且群组消息对成员公开展示。
GroupMember 是群组成员。展示群组成员的个人信息,大部分字段和属性内容接近联系人用户实例。群成员的is_removed字段表示该成员是否已移除。status字段表示该成员的状态,是否离开(拉黑)了群组。以上两个数值只有群主可以查看。
Auth and the Party API
与其他 Feat REST API 一样,Party API 使用 OAuth 2.0 来处理认证以及授权。你的应用需要指定一个或者多个 Scopes。 Scopes 是用来标记应用需要访问数据范围的字符串。这些 scopes 一组 token 一起确保数据访问安全。 一个 Scope 可以代表对单个资源的访问,也可以代表对一组资源的访问范围,例如:
- 获取用户Inbox联系人 scope:party_contact (
https://www.featapi.com/api/party/contact-list/inbox/
)
你可以查看 为你的应用授予Party权限,来更加深入地了解如何在认证条件下使用 Party API。
Scopes
Party API支持许多细粒度的授权范围,以实现所需级别的访问控制。 通过请求所需的最小访问级别,用户可以更自信地授予对其 Party 的访问权限。
示范用例
目标场景:输出当前用户的的Inbox联系人列表。为了实现这个功能,你的应用需要一下步骤:
- 使用
party_contact
授权范围,完成认证用户的授权 - 调用API GET
https://www.featapi.com/api/party/contact-list/inbox/
- 在应用中处理返回的用户的nbox联系人列表数据
有关实际的示例代码,请参考快速入门部分
常见用途
本节在一个较高的视角来描述一些常见的用例该如何实现。 有关更多详细信息,请参阅开发人员指南。
发送消息
消息是Party最常见的数据。用户可以主动向其他用户或所在的群组发送消息,需要以下步骤:
- 以
to_user
或to_group
字段作为消息的发送目标,to_user
值为目标用户ID,to_group
值为群组ID,如果同时提交to_user
和to_group
,则这是群组私聊消息,只有目标群成员和群组可以接收。 content
作为消息的内容- 调用Party
Message.create
来发送消息