加好友方式
每個使用者有自己的加好友方式,決定別人在客戶端向他傳送好友申請時怎樣處理:
| 取值 | 含義 | 別人傳送申請時 |
|---|---|---|
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"
}