v0.0.56
pan-console-proto
pan/console/v1/account/command.proto
AddPhoneAnswer
AddPhonePayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| phone_id | string | 要添加phone的phone_id | |
| phone | string | 若為第一個添加的phone,則該帳號將轉為實體帳號 |
DeletePhoneAnswer
DeletePhonePayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| phone_id | string | 要移除phone的phone_id | |
| phone | string | 若為最後一個移除的phone,則該帳號將轉為虛擬帳號 |
RemoveMemberAnswer
RemoveMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| object_id | string | 要移除的子帳號的object_id | |
| new_main_uid | int64 | 要指定為新的主帳號的uid |
SwitchMainMemberAnswer
SwitchMainMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | 必填。 | |
| phone_id | string | 必填。要更改主帳號的帳戶phone_id | |
| uid | int64 | 必填。要變更為主帳號的uid |
UpdatePhoneAnswer
UpdatePhonePayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| phone_id | string | ||
| phone | string |
Command
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| RemoveMember | RemoveMemberPayload | RemoveMemberAnswer | 從某帳戶下移除指定的子帳號,如果移除的是主帳號且還有其他子帳號、則需要同時指定新的主帳號。 如果移除的是帳戶下最後一個子帳號,會變成虛擬帳戶。 若原先帳戶下有手機曾在APEA驗證過,會同步刪除該會員和驗證狀態的關聯。 該被移除會員會被轉至一個新的虛擬帳戶下,同時將該會員設為主帳號。 若成功會發送PhoneIdUpdated Pub/Sub event |
| UpdatePhone | UpdatePhonePayload | UpdatePhoneAnswer | deprecated |
| AddPhone | AddPhonePayload | AddPhoneAnswer | 在某帳戶下追加手機號碼,若成功會發送PhoneUpdated Pub/Sub event |
| DeletePhone | DeletePhonePayload | DeletePhoneAnswer | 從某帳戶移除指定手機號碼 如果移除的是最後一隻電話會轉為虛擬帳戶。 如果移除的是默認手機且還有其他手機、會自動將剩下的電話中最早綁定的設為默認手機。 如果移除的電話曾在APEA驗證過,會同步移除該帳戶的phone_id在APEA的關聯紀錄。 若成功會發送PhoneUpdated Pub/Sub event |
| SwitchMainMember | SwitchMainMemberPayload | SwitchMainMemberAnswer | 將指定的子帳號改為主帳號 |
pan/console/v1/account/query.proto
GenerateFoundTokenAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| found_token | string |
GenerateFoundTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| phone_id | string | 要查詢的phone_id (JPASS ID,絕對比對) | |
| phone | string | 要查詢的電話號碼(模糊比對) | |
| object_id | string | 要查詢的帳戶所關聯的某帳號的object_id(絕對比對) | |
| uid | int64 | 要查詢的帳戶所關聯的某帳號的uid(絕對比對) |
GetAccountListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| records | GetAccountListAnswer.Record | repeated |
GetAccountListAnswer.Record
| Field | Type | Label | Description |
|---|---|---|---|
| is_virtual | bool | 是否為虛擬帳戶 | |
| member_count | int64 | 帳戶所對應的帳號數量 | |
| phone_id | string | 該帳戶的phone_id (JPASS ID) | |
| phone_count | int64 | 該帳戶持有的電話數量 |
GetAccountListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| found_token | string |
PhoneNumberListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| records | PhoneNumberListAnswer.Record | repeated |
PhoneNumberListAnswer.Record
| Field | Type | Label | Description |
|---|---|---|---|
| phone | string | 電話號碼 | |
| phone_order | int64 | 電話升序編號,從1起算 | |
| created_at | google.protobuf.Timestamp | 電話綁定時間 |
PhoneNumberListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| phone_id | string | JPASS ID |
Query
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GenerateFoundToken | GenerateFoundTokenPayload | GenerateFoundTokenAnswer | 生成查詢帳戶的token |
| GetAccountList | GetAccountListPayload | GetAccountListAnswer | 根據found token查詢符合條件的account |
| PhoneNumberList | PhoneNumberListPayload | PhoneNumberListAnswer | 根據指定的phone_id (JPASS ID)查詢該帳戶所持有的全部手機號碼。 如果操作者沒有電話閱覽權限、僅會顯示手機後3碼。 |
pan/console/v1/base/error.proto
Error
Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| AdminTokenInvalid | 1503 | admin token無效 |
| FailedToIdentifyIP | 1601 | 無法識別用戶IP |
| FailedToPublishEvent | 1602 | 發送Pub/Sub event失敗 |
| MemberNotFound | 1603 | 查詢member資料失敗 |
| AccountNotFound | 1604 | 查詢account資料失敗(可能是從論壇來的、沒有電話的帳號) |
| PhoneDuplicated | 1605 | 電話號碼已被使用 |
| PhoneFormatIncorrect | 1606 | 電話號碼格式有錯誤 |
| PhoneNotExist | 1607 | 電話號碼不存在 |
| UsernameDuplicated | 1608 | username已被使用 |
| DisplayNameDuplicated | 1609 | display_name已被使用 |
| UsernameAlreadySet | 1610 | 用戶名稱已設定 |
pan/console/v1/base/general.proto
TernaryCondition
| Name | Number | Description |
|---|---|---|
| All | 0 | 不限 |
| True | 1 | 正向 |
| False | 2 | 負向 |
pan/console/v1/health.proto
HealthCheckRequest
| Field | Type | Label | Description |
|---|---|---|---|
| service | string |
HealthCheckResponse
| Field | Type | Label | Description |
|---|---|---|---|
| status | HealthCheckResponse.ServingStatus |
HealthCheckResponse.ServingStatus
| Name | Number | Description |
|---|---|---|
| SERVING_STATUS_UNSPECIFIED | 0 | |
| SERVING_STATUS_SERVING | 1 | |
| SERVING_STATUS_NOT_SERVING | 2 | |
| SERVING_STATUS_SERVICE_UNKNOWN | 3 | Used only by the Watch method. |
HealthService
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Check | HealthCheckRequest | HealthCheckResponse | |
| Watch | HealthCheckRequest | HealthCheckResponse stream |
pan/console/v1/member/command.proto
CommandError
CreateAccountAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| phone_id | string | 新創建帳戶的 phone_id (JPASS ID) | |
| object_id | string | 新創建帳號的 object_id | |
| uid | int64 | 新創建帳號的 uid |
CreateAccountPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| username | string | 用戶名稱 | |
| display_name | string | 用戶暱稱 | |
| password | string | 帳號密碼 | |
| phone | string | 手機號碼,optional,若為空則是虛擬帳號 | |
| string | 信箱,optional,若有值會自動標記為已驗證信箱 |
CreateNewMemberAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | 新增的子帳號的 uid | |
| object_id | string | 新增的子帳號的 object_id |
CreateNewMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | 必填。 | |
| phone_id | string | 必填。要新增子帳號的帳戶的 phone_id | |
| username | string | 必填。 | |
| display_name | string | 必填。 | |
| password | string | 必填。 | |
| string | 選填。 |
CreateVirtualPhoneMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| console_token | string | ||
| display_name | string | ||
| password | string | optional |
CreateVirtualPhoneMemberStatus
CreateVirtualPhoneMemberStatus.Error
DeletePasswordAnswer
DeletePasswordPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | 要刪除密碼的帳號 uid |
DeleteSecurityQuestionAnswer
DeleteSecurityQuestionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | 要刪除安全提問的 uid |
RemoveAvatarAnswer
RemoveAvatarPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | 要移除大頭貼的帳號 uid |
UpdateDisplayNameAnswer
UpdateDisplayNamePayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| object_id | string | 指定帳號的 object_id | |
| display_name | string | 新的暱稱 |
UpdateEmailAnswer
UpdateEmailAnswer.Error
UpdateEmailPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | ||
| string |
UpdatePasswordAnswer
UpdatePasswordPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | 要更新密碼的帳號 uid | |
| password | string | 新密碼 |
UpdateUsernameAnswer
UpdateUsernamePayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | 要更新用戶名稱的帳號 uid | |
| username | string | 新用戶名稱 |
CommandError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| EmailDuplicated | 2001 | |
| PasswordInvalid | 2002 |
CreateVirtualPhoneMemberStatus.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
UpdateEmailAnswer.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| EmailDuplicated | 1001 | 信箱已被使用 |
Command
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CreateVirtualPhoneMember | CreateVirtualPhoneMemberPayload | CreateVirtualPhoneMemberStatus | deprecated - 目前僅dev測試用途 |
| CreateAccount | CreateAccountPayload | CreateAccountAnswer | 創建帳戶 會用指定的username同步在論壇創建帳號 若成功會發送RegisterDone Pub/Sub event |
| UpdateDisplayName | UpdateDisplayNamePayload | UpdateDisplayNameAnswer | 更新指定帳號的暱稱 若成功會發送DisplayNameUpdated Pub/Sub event |
| DeletePassword | DeletePasswordPayload | DeletePasswordAnswer | 刪除指定帳號的密碼 若成功會發送PasswordUpdated Pub/Sub event |
| DeleteSecurityQuestion | DeleteSecurityQuestionPayload | DeleteSecurityQuestionAnswer | 刪除指定帳號的安全提問 若成功會發送SecurityQuestionUpdated Pub/Sub event |
| UpdateUsername | UpdateUsernamePayload | UpdateUsernameAnswer | 更新指定帳號的用戶名稱 若目前已有用戶名稱,則會阻擋 若成功會發送UsernameUpdated Pub/Sub event |
| UpdatePassword | UpdatePasswordPayload | UpdatePasswordAnswer | 更新指定帳號的密碼 會將新密碼同步到論壇 若成功會發送PasswordUpdated Pub/Sub event |
| UpdateEmail | UpdateEmailPayload | UpdateEmailAnswer | 更新指定帳號的信箱 若成功會發送PasswordUpdated Pub/Sub event 若payload email為空,則會移除指定帳號的email 若成功會發送EmailUpdated和EmailVerifiedUpdated Pub/Sub event |
| RemoveAvatar | RemoveAvatarPayload | RemoveAvatarAnswer | 移除指定帳號的大頭貼 會移除該帳號在pan以及論壇存儲的大頭貼 |
| CreateNewMember | CreateNewMemberPayload | CreateNewMemberAnswer |
pan/console/v1/member/query.proto
GenerateFoundTokenAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| found_token | string |
GenerateFoundTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| phone | string | 查詢的電話號碼(模糊比對) | |
| phone_id | string | 查詢的phone_id (JPASS ID,絕對比對) | |
| uid | int64 | 查詢的uid (絕對比對) | |
| hashed_uid | string | 查詢的hashed uid (huid,絕對比對) | |
| object_id | string | 查詢的object_id(絕對比對) | |
| username | string | 查詢的username (不分大小寫模糊比對) | |
| display_name | string | 查詢display_name (不分大小寫模糊比對) | |
| string | 查詢的email (不分大小寫模糊比對) | ||
| email_verified | pan.console.v1.base.TernaryCondition | 是否要鎖定「信箱是否已驗證」的狀態(若為All則不限) | |
| has_password | pan.console.v1.base.TernaryCondition | 是否要鎖定「有無設定密碼」的狀態(若為All則不限) | |
| has_second_passcode | pan.console.v1.base.TernaryCondition | 是否要鎖定「有無設定安全提問」的狀態(若為All則不限) | |
| is_virtual_account | pan.console.v1.base.TernaryCondition | 是否要鎖定「是否為虛擬帳號」的狀態(若為All則不限) | |
| limit | int64 | 單次查詢返回筆數上限 |
GetMemberDetailAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| phone_id | string | 該帳號所屬帳戶的phone_id (JPASS ID) | |
| uid | int64 | 該帳號的uid | |
| object_id | string | 該帳號的object_id | |
| hashed_uid | string | 該帳號的hashed uid | |
| username | string | 該帳號的用戶名稱 | |
| display_name | string | 該帳號的暱稱 | |
| avatar | string | 該帳號的大頭貼URL路徑 | |
| string | 該帳號的信箱 | ||
| phone | string | deprecated | |
| email_verified | bool | 該帳號的信箱是否已驗證 | |
| has_password | bool | 該帳號是否有設定密碼 | |
| has_second_passcode | bool | 該帳號是否有設定安全提問 | |
| twid_status | bool | 該帳號是否有經APEA通過TWID驗證 | |
| is_main_member | bool | 該帳號是否為帳戶下的主帳號 | |
| phones | string | repeated | 該帳號所屬帳戶持有的所有電話號碼,若當前操作者沒有電話閱覽權限、則僅顯示電話後3碼 |
GetMemberDetailPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | 指定帳號的uid |
GetMemberListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| records | GetMemberListAnswer.Record | repeated |
GetMemberListAnswer.Record
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | 符合條件帳號的uid | |
| username | string | 符合條件帳號的用戶名稱 | |
| display_name | string | 符合條件帳號的暱稱 | |
| is_main_member | bool | 是否為主帳號 |
GetMemberListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| found_token | string |
Query
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GenerateFoundToken | GenerateFoundTokenPayload | GenerateFoundTokenAnswer | 生成查詢帳號的token 不可同時指定uid和hashed_uid 查詢條件不可為空 建議單次查詢筆數上限為500 (可透過limit設定) |
| GetMemberList | GetMemberListPayload | GetMemberListAnswer | 根據found token查詢符合條件的帳號 |
| GetMemberDetail | GetMemberDetailPayload | GetMemberDetailAnswer | 查詢指定帳號的詳細資訊 |