加好友方式
每个用户有自己的加好友方式,决定别人在客户端向他发送好友申请时怎样处理:
| 取值 | 含义 | 别人发送申请时 |
|---|---|---|
need_confirm | 需要验证 | 生成待处理的申请,本人同意后成为好友 |
allow_any | 允许任何人添加 | 不需要本人同意,双方直接成为好友 |
deny_any | 拒绝任何人添加 | 申请发不出去,对方收到 403 friend_add_denied |
- 应用默认值:用户没有设置过时,使用应用运行策略中的
default_friend_add_mode(默认need_confirm,见运行策略)。例如企业内部通讯的应用可以把默认值设为allow_any。应用默认值修改后,所有没有单独设置过的用户随之生效。 - 谁可以设置:用户可以在客户端设置自己的加好友方式,你的服务端也可以通过本页的接口为用户设置。
- 只影响客户端的好友申请:服务端直接添加好友不检查加好友方式。另外,对方已经向本人发出了未过期的待处理申请时,本人再向对方申请会直接成为好友,即使对方是
deny_any。 - 修改加好友方式不会通知用户的在线设备。
查询加好友方式
GET
/{org_name}/{app_name}/users/{username}/friend-settings路径参数
org_name、app_name 见接入概述。
| 参数 | 类型 | 说明 |
|---|---|---|
username | String | 用户名 |
请求示例
bash
curl "$IM_API/$ORG/$APP/users/erin/friend-settings" \
-H "Authorization: Bearer $APP_TOKEN"响应
成功返回 200 OK,响应体为加好友方式对象。用户没有设置过时:
json
{
"friend_add_mode": null,
"effective_friend_add_mode": "need_confirm"
}错误
| HTTP 状态码 | code | 说明 |
|---|---|---|
| 404 | not_found | 用户不存在或已删除 |
设置加好友方式
为用户设置加好友方式,或者清除用户的设置、改为使用应用默认值。设置相同的值不会报错。
PUT
/{org_name}/{app_name}/users/{username}/friend-settings路径参数
org_name、app_name 见接入概述。
| 参数 | 类型 | 说明 |
|---|---|---|
username | String | 用户名 |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
friend_add_mode | String | 是 | need_confirm、allow_any 或 deny_any;传 null 表示清除用户的设置,改为使用应用默认值。字段必须出现 |
请求示例
bash
curl -X PUT "$IM_API/$ORG/$APP/users/erin/friend-settings" \
-H "Authorization: Bearer $APP_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"friend_add_mode": "allow_any"
}'响应
成功返回 200 OK,响应体为设置后的加好友方式对象。
json
{
"friend_add_mode": "allow_any",
"effective_friend_add_mode": "allow_any"
}错误
| HTTP 状态码 | code | 说明 |
|---|---|---|
| 400 | invalid_argument | 请求体中没有 friend_add_mode,或者取值不是 need_confirm、allow_any、deny_any、null |
| 404 | not_found | 用户不存在或已删除 |
数据结构
加好友方式对象
| 字段 | 类型 | 说明 |
|---|---|---|
friend_add_mode | String | 用户自己设置的加好友方式,没有设置过时为 null |
effective_friend_add_mode | String | 实际生效的加好友方式:用户设置过的取用户的设置,否则取应用的 default_friend_add_mode |
json
{
"friend_add_mode": null,
"effective_friend_add_mode": "need_confirm"
}