v0.0.201
pan-direct-proto
atom/ladies/first.proto
Category
| Field | Type | Label | Description |
|---|---|---|---|
| id | int64 | ||
| name | string | ||
| sort | int64 |
Lady
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| name | string | ||
| summary | string | ||
| cover | string | ||
| style_tag | string | repeated |
LadyRank
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| name | string | ||
| cover | string | ||
| vote_count | int64 | ||
| rank | int64 |
atom/ladyapp/first.proto
FileContent
| Field | Type | Label | Description |
|---|---|---|---|
| index | int64 | ||
| file_url | string |
LadyImage
| Field | Type | Label | Description |
|---|---|---|---|
| logo_url | string | ||
| model_card_url | FileContent | repeated | |
| identity_card_url | FileContent | repeated | |
| bank_account_url | string |
LadyIntro
| Field | Type | Label | Description |
|---|---|---|---|
| girl_type | string | ||
| hash_tag | string | ||
| skill | string | repeated | |
| like | string | repeated | |
| afraid | string | repeated | |
| sexy_part | string | repeated |
LadyProfileData
| Field | Type | Label | Description |
|---|---|---|---|
| id | int64 | ||
| member_uuid | string | ||
| lady_text | LadyText | ||
| lady_image | LadyImage | ||
| lady_record | LadyRecord | ||
| profile_verify | int64 | ||
| general_data | int64 | ||
| reject_columns | string | repeated | |
| created_at | google.protobuf.Timestamp | ||
| updated_at | google.protobuf.Timestamp |
LadyRecord
| Field | Type | Label | Description |
|---|---|---|---|
| be_jkf_lady_url | string | ||
| join_jkf_url | string | ||
| work_url | string | ||
| dreamboat_url | string | ||
| choose_url | string | ||
| interest_url | string | ||
| future_url | string |
LadyText
| Field | Type | Label | Description |
|---|---|---|---|
| phone | string | ||
| stage_name | string | ||
| real_name | string | ||
| address | string | ||
| birthday | google.protobuf.Timestamp | ||
| blood_type | LadyText.BloodType | ||
| bust | string | ||
| waist | int64 | ||
| hips | int64 | ||
| height | int64 | ||
| weight | int64 | ||
| line | string | ||
| string | |||
| string | |||
| string | |||
| lady_intro | LadyIntro |
LadyText.BloodType
| Name | Number | Description |
|---|---|---|
| BLOOD_TYPE_EMPTY | 0 | |
| BLOOD_TYPE_A | 1 | |
| BLOOD_TYPE_B | 2 | |
| BLOOD_TYPE_AB | 3 | |
| BLOOD_TYPE_O | 4 | |
| BLOOD_TYPE_UNKNOWN | 5 |
atom/member/first.proto
AddressBook
| Field | Type | Label | Description |
|---|---|---|---|
| id | int64 | ||
| full_name | string | ||
| zip_code | string | ||
| address | string | ||
| phone | string | ||
| platform | string | ||
| default_buyer | bool | ||
| type | AddressBook.Type |
AddressBookAll
| Field | Type | Label | Description |
|---|---|---|---|
| value | AddressBook | repeated |
Education
| Field | Type | Label | Description |
|---|---|---|---|
| edu_level | string | ||
| graduate_school | string |
History
| Field | Type | Label | Description |
|---|---|---|---|
| job | Job | ||
| edu | Education | ||
| social | Social | ||
| salary | History.Salary | ||
| summary | string |
Identity
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| object_id | string | ||
| huid | string | ||
| string | |||
| username | string |
Individual
| Field | Type | Label | Description |
|---|---|---|---|
| full_name | string | ||
| birthday | google.protobuf.Timestamp |
Job
| Field | Type | Label | Description |
|---|---|---|---|
| company_name | string | ||
| position | string | ||
| professional | string |
Object
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| uid | int64 | ||
| username | string | ||
| avatar | string | ||
| group_id | int64 | Deprecated. group_id deprecated | |
| group_name | string | Deprecated. group_name deprecated | |
| string | |||
| activate_ip | string | ||
| activate_date | google.protobuf.Timestamp | ||
| phone | string | 僅會員自身可見 | |
| activate | bool | ||
| display_name | string | ||
| gender | Gender | ||
| vip_expire_date | google.protobuf.Timestamp | ||
| hash_uid | string | ||
| phone_id | string | 僅會員自身可見 | |
| email_status | int64 | ||
| is_owner | bool | ||
| created | google.protobuf.Timestamp | ||
| modified | google.protobuf.Timestamp | ||
| can_new_child | bool | ||
| email_verified | bool |
Secure
| Field | Type | Label | Description |
|---|---|---|---|
| password | string | ||
| salt | string | ||
| expires | google.protobuf.Timestamp |
Social
| Field | Type | Label | Description |
|---|---|---|---|
| line | string | ||
| fb | string | ||
| ig | string | ||
| jvid | string |
Status
| Field | Type | Label | Description |
|---|---|---|---|
| group_name | string |
TokenInfo
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| uid | int64 | ||
| username | string | ||
| group_id | int64 | ||
| group_name | string | ||
| display_name | string | ||
| phone_id | string |
VirtualAddress
| Field | Type | Label | Description |
|---|---|---|---|
| area | string | ||
| city | string | ||
| detail | string | ||
| country | string | ||
| zip | string |
AddressBook.Type
| Name | Number | Description |
|---|---|---|
| TypeNone | 0 | |
| TypeMainLive | 1 | |
| TypeMainShipping | 2 |
Gender
| Name | Number | Description |
|---|---|---|
| GENDER_NOTSET | 0 | |
| Male | 1 | |
| Female | 2 |
History.Salary
| Name | Number | Description |
|---|---|---|
| SalaryNone | 0 | |
| SalaryLevel1 | 1 | |
| SalaryLevel2 | 2 | |
| SalaryLevel3 | 3 | |
| SalaryLevel4 | 4 | |
| SalaryLevel5 | 5 | |
| SalaryLevel6 | 6 |
general/admin/admin.proto
AddLadyCategoryRequest
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| sort | int64 |
AddLadyCategoryResponse
| Field | Type | Label | Description |
|---|---|---|---|
| category | pan.atom.ladies.Category |
ChangeMemberEmailRequest
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | ||
| string |
ChangeMemberEmailResponse
ChangeMemberEmailResponse.Error
ChangeMemberPasswordRequest
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 | ||
| password | string |
ChangeMemberPasswordResponse
ChangeMemberPasswordResponse.Error
DeleteLadyCategoryRequest
| Field | Type | Label | Description |
|---|---|---|---|
| id | int64 |
DeleteLadyCategoryResponse
GoogleLoginRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
GoogleLoginResponse
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string |
LadyCategoriesRequest
LadyCategoriesResponse
| Field | Type | Label | Description |
|---|---|---|---|
| categories | pan.atom.ladies.Category | repeated |
LadyData
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| jkf_username | string | ||
| display_name | string | ||
| style_tag | string | repeated | |
| phone_number | string | ||
| category_id | int64 | ||
| category_sort | int64 |
LadyListRequest
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | optional, fuzzy search | |
| name | string | optional, fuzzy search | |
| style_tag | string | optional | |
| category_id | int64 | optional |
LadyListResponse
| Field | Type | Label | Description |
|---|---|---|---|
| Lady | LadyData | repeated |
LadySetCategoryRequest
| Field | Type | Label | Description |
|---|---|---|---|
| target_uid | int64 | ||
| category_id | int64 | ||
| sort | int64 |
LadySetCategoryResponse
LadySetStyleTagsRequest
| Field | Type | Label | Description |
|---|---|---|---|
| target_uid | int64 | ||
| style_tag | string | repeated |
LadySetStyleTagsResponse
LadyUpdateRequest
| Field | Type | Label | Description |
|---|---|---|---|
| target_uid | int64 | ||
| display_name | string | ||
| phone_number | string |
LadyUpdateResponse
RemoveMemberAvatarRequest
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string | ||
| uid | int64 |
RemoveMemberAvatarResponse
RemoveMemberAvatarResponse.Error
ValidateAdminTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| admin_token | string |
ValidateAdminTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| is_valid | bool | ||
| string | |||
| roles | string | repeated |
ChangeMemberEmailResponse.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotAuthorized | 1001 | |
| UserNotFound | 1002 | |
| EmailInUseInJKF | 1003 | |
| EmailNotUsableInJKF | 1004 | |
| EmailInUseInPan | 1005 | |
| UpdateEmailFailed | 1006 | |
| InternalError | 1007 |
ChangeMemberPasswordResponse.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotAuthorized | 1001 | |
| ParsePasswordFailed | 1002 | |
| PasswordFormatIncorrect | 1003 | |
| UserNotFound | 1004 | |
| UpdatePasswordFailed | 1005 |
RemoveMemberAvatarResponse.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotAuthorized | 1001 | |
| UserNotFound | 1002 | |
| RemoveAvatarFailed | 1003 | |
| RemoveAvatarInJKFFailed | 1004 | |
| InternalError | 1005 |
AdminService
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GoogleLogin | GoogleLoginRequest | GoogleLoginResponse | |
| ValidateAdminToken | ValidateAdminTokenRequest | ValidateAdminTokenResponse | |
| ChangeMemberPassword | ChangeMemberPasswordRequest | ChangeMemberPasswordResponse | member api |
| ChangeMemberEmail | ChangeMemberEmailRequest | ChangeMemberEmailResponse | |
| RemoveMemberAvatar | RemoveMemberAvatarRequest | RemoveMemberAvatarResponse | |
| LadyList | LadyListRequest | LadyListResponse | lady api |
| LadyUpdate | LadyUpdateRequest | LadyUpdateResponse | |
| LadySetStyleTags | LadySetStyleTagsRequest | LadySetStyleTagsResponse | |
| LadySetCategory | LadySetCategoryRequest | LadySetCategoryResponse | |
| LadyCategories | LadyCategoriesRequest | LadyCategoriesResponse | lady category |
| AddLadyCategory | AddLadyCategoryRequest | AddLadyCategoryResponse | |
| DeleteLadyCategory | DeleteLadyCategoryRequest | DeleteLadyCategoryResponse |
general/application/app.proto
AppId
AppId.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| jkforum | 1 | |
| jkfpost | 2 | |
| jkfstar | 3 | |
| jkface | 4 | |
| jr24h | 5 | |
| jktalk | 6 | |
| jcontrol | 7 | |
| shop24h | 8 | |
| sugar | 9 | |
| jktank | 10 | |
| avplus | 11 |
general/ladies/error.proto
ErrVote
ErrVote.General
| Name | Number | Description |
|---|---|---|
| DEFAULT | 0 | |
| PHONE_REQUIRED | 1001 | |
| OUT_OF_QUOTA_FOR_TIME | 1002 | |
| OUT_OF_QUOTA_FOR_LADY | 1003 | |
| LOGIN_OR_REGISTER_REQUIRED | 1004 |
general/ladies/first.proto
CanIVoteRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| lady_uid | int64 |
CanIVoteResponse
CategoriesRequest
CategoriesResponse
| Field | Type | Label | Description |
|---|---|---|---|
| categories | pan.atom.ladies.Category | repeated |
GetMyRankRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | 這個 string 可以直接當作 uid 查詢 |
LadiesListRequest
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| tag | string | ||
| category_id | int64 |
LadiesListResponse
| Field | Type | Label | Description |
|---|---|---|---|
| Lady | pan.atom.ladies.Lady | repeated |
LadyVoteType
RankListRequest
| Field | Type | Label | Description |
|---|---|---|---|
| page | int64 | ||
| limit | int64 | ||
| period | RankListRequest.Period |
RankListResponse
| Field | Type | Label | Description |
|---|---|---|---|
| lady | pan.atom.ladies.LadyRank | repeated |
VoteRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| lady_uid | int64 |
VoteResponse
LadyVoteType.General
| Name | Number | Description |
|---|---|---|
| LadyVoteTypeNormal | 0 | |
| LadyVoteTypeUserVoteReward | 1 | |
| LadyVoteTypeDayReward | 2 | |
| LadyVoteTypeRankReward | 3 |
RankListRequest.Period
| Name | Number | Description |
|---|---|---|
| all | 0 | |
| week | 1 | |
| month | 2 |
LadiesService
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| LadiesList | LadiesListRequest | LadiesListResponse | |
| RankList | RankListRequest | RankListResponse | |
| Vote | VoteRequest | VoteResponse | |
| GetMyRank | GetMyRankRequest | .pan.atom.ladies.LadyRank | |
| CanIVote | CanIVoteRequest | CanIVoteResponse | |
| Categories | CategoriesRequest | CategoriesResponse |
general/ladyadmin/ladyadmin.proto
GeneralLadyDataReq
| Field | Type | Label | Description |
|---|---|---|---|
| lady_register_profile_id | int64 |
GeneralLadyDataRes
LadyProfileAttachmentReq
| Field | Type | Label | Description |
|---|---|---|---|
| lady_register_profile_id | int64 | ||
| attachment_type | LadyProfileAttachmentReq.AttachmentType |
LadyProfileAttachmentRes
| Field | Type | Label | Description |
|---|---|---|---|
| lady_profile_attachment | pan.atom.ladyapp.LadyProfileData |
LadyProfileDataVerifyReq
| Field | Type | Label | Description |
|---|---|---|---|
| lady_register_profile_id | int64 | ||
| data_verify | LadyProfileDataVerifyReq.DataVerify | ||
| column_name | string |
LadyProfileDataVerifyRes
LadyProfileListReq
| Field | Type | Label | Description |
|---|---|---|---|
| page | int64 | ||
| limit | int64 | ||
| phone_number | string | optional, fuzzy search | |
| stage_name | string | optional, fuzzy search | |
| profile_verify | int64 | optional |
LadyProfileListRes
| Field | Type | Label | Description |
|---|---|---|---|
| lady_profile_data | pan.atom.ladyapp.LadyProfileData | repeated | |
| total | int64 |
SendMessageToLadyReq
| Field | Type | Label | Description |
|---|---|---|---|
| phone | string |
SendMessageToLadyRes
LadyProfileAttachmentReq.AttachmentType
| Name | Number | Description |
|---|---|---|
| IMAGE | 0 | |
| RECORD | 1 | |
| ALL | 2 |
LadyProfileDataVerifyReq.DataVerify
| Name | Number | Description |
|---|---|---|
| DATA_ONE_DENY | 0 | |
| DATA_ALL_CONFIRM | 1 |
LadyAdminService
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| SendMessageToLady | SendMessageToLadyReq | SendMessageToLadyRes | 傳送手機簡訊給女郎 |
| LadyProfileList | LadyProfileListReq | LadyProfileListRes | 取得女郎註冊資料列表 + 查詢 |
| LadyProfileAttachment | LadyProfileAttachmentReq | LadyProfileAttachmentRes | 取得女郎圖片或錄音檔案 |
| LadyProfileDataVerify | LadyProfileDataVerifyReq | LadyProfileDataVerifyRes | 審核女郎註冊資料 |
| GeneralLadyData | GeneralLadyDataReq | GeneralLadyDataRes | 建立女郎相關資料給Pan |
general/ladyapp/error.proto
ErrBase
ErrSaveLady
ErrSendSmsCode
ErrBase.General
| Name | Number | Description |
|---|---|---|
| NOTSET | 0 | |
| INVALID_PARAMETER | 1001 | |
| SERVER_ERROR | 1002 | |
| TOKEN_INVALID | 1003 |
ErrSaveLady.General
| Name | Number | Description |
|---|---|---|
| NOTSET | 0 | |
| LADY_DATA_EMPTY | 3001 |
ErrSendSmsCode.General
| Name | Number | Description |
|---|---|---|
| NOTSET | 0 | |
| PLEASE_GO_PAN_LOGIN | 2001 | |
| SMS_RESEND_DENIED | 2002 | |
| SMS_RESEND_LIMIT | 2003 |
general/ladyapp/first.proto
CheckLadyRegisterProfileReq
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
CheckLadyRegisterProfileRes
| Field | Type | Label | Description |
|---|---|---|---|
| profile_status | CheckLadyRegisterProfileRes.ProfileStatus | ||
| check_column | string | repeated |
CheckPhoneReq
| Field | Type | Label | Description |
|---|---|---|---|
| phone_number | string | ||
| country_code | string |
CheckPhoneRes
| Field | Type | Label | Description |
|---|---|---|---|
| phone_status | CheckPhoneRes.PhoneStatus |
GenerateAuthTokenReq
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| app_id | string |
GenerateAuthTokenRes
| Field | Type | Label | Description |
|---|---|---|---|
| auth_token | string |
LadyAppLoginReq
| Field | Type | Label | Description |
|---|---|---|---|
| phone_number | string | ||
| country_code | string | ||
| verify_code | string |
LadyAppLoginRes
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
LadyProfileReq
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
LadyProfileRes
| Field | Type | Label | Description |
|---|---|---|---|
| profile | pan.atom.ladyapp.LadyProfileData |
SaveLadyReq
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| profile | pan.atom.ladyapp.LadyText |
SaveLadyRes
SendSmsCodeReq
| Field | Type | Label | Description |
|---|---|---|---|
| phone_number | string | ||
| country_code | string | ||
| session_valid | string | ||
| platform | SendSmsCodeReq.Platform |
SendSmsCodeRes
UploadFileReq
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| content_type | ContentType | ||
| file | bytes | 檔案本身 | |
| content_index | int64 |
UploadFileRes
ValidateStageNameReq
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| stage_name | string |
ValidateStageNameRes
CheckLadyRegisterProfileRes.ProfileStatus
| Name | Number | Description |
|---|---|---|
| CREATED | 0 | |
| CONFIRMED | 1 | |
| REJECTED | 2 | |
| EDITED | 3 | |
| REGISTERED_TO_JKF | 4 |
CheckPhoneRes.PhoneStatus
| Name | Number | Description |
|---|---|---|
| EXIST | 0 | |
| IS_BE_LADY | 1 | |
| EMPTY | 2 |
ContentType
| Name | Number | Description |
|---|---|---|
| LOGO | 0 | |
| MODEL_CARD | 1 | |
| IDENTITY_CARD | 2 | |
| BANK_ACCOUNT | 3 | |
| RECORD_BE_JKF_LADY | 4 | |
| RECORD_JOIN_JKF | 5 | |
| RECORD_WORK | 6 | |
| RECORD_DREAMBOAT | 7 | |
| RECORD_CHOOSE | 8 | |
| RECORD_INTEREST | 9 | |
| RECORD_FUTURE | 10 |
SendSmsCodeReq.Platform
| Name | Number | Description |
|---|---|---|
| ANDROID | 0 | |
| IOS | 1 |
LadyAppService
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CheckPhone | CheckPhoneReq | CheckPhoneRes | |
| SendSmsCode | SendSmsCodeReq | SendSmsCodeRes | |
| LadyAppLogin | LadyAppLoginReq | LadyAppLoginRes | |
| CheckLadyRegisterProfile | CheckLadyRegisterProfileReq | CheckLadyRegisterProfileRes | 確認女郎資料是否已驗證,未驗證需回傳未認可 |
| ValidateStageName | ValidateStageNameReq | ValidateStageNameRes | |
| SaveLady | SaveLadyReq | SaveLadyRes | 儲存女郎資料 |
| UploadLadyAttachment | UploadFileReq | UploadFileRes | 上傳檔案 |
| LadyProfile | LadyProfileReq | LadyProfileRes | 取得女郎Profile資料 |
| GenerateAuthToken | GenerateAuthTokenReq | GenerateAuthTokenRes | 產生Forum用AuthToken |
general/member/dangerous/dangerous.proto
CmdDeleteAccountRequest
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| pan_access_token | string | ||
| del_token | string |
CmdDeleteAccountResponse
CmdDeleteMemberRequest
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| pan_access_token | string | ||
| del_token | string |
CmdDeleteMemberResponse
CmdDeleteAccountResponse.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
CmdDeleteMemberResponse.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
Command
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| DeleteMember | CmdDeleteMemberRequest | CmdDeleteMemberResponse | |
| DeleteAccount | CmdDeleteAccountRequest | CmdDeleteAccountResponse |
general/member/error.proto
ErrAccessToken
ErrDisplayName
ErrInitGender
ErrLogin
ErrMakeLoginToken
ErrMe
ErrMemberMigrationStatus
ErrNewMember
ErrObject
ErrOtherMember
ErrReadObject
ErrRegister
ErrSetMemberEmail
ErrSetMemberPassword
ErrSys
ErrUnlockSessionToken
ErrValidateAccessToken
ErrValidateLoginToken
ErrValidateNewMember
ErrValidatePhone
ErrValidatePhoneV2
ErrAccessToken.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| EXPIRED | 1002 | |
| INVALID | 1003 |
ErrDisplayName.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| DISPLAY_NAME_ALREADY_EXISTS | 1001 |
ErrInitGender.General
| Name | Number | Description |
|---|---|---|
| GENERAL_NOTSET | 0 | |
| GENERAL_TOKEN_INVALID | 1001 | |
| GENERAL_FAILED | 1002 |
ErrLogin.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| SESSION_INVALID | 1002 | |
| CODE_INVALID | 1003 | |
| CODE_PENDING_10 | 1004 | |
| CODE_PENDING | 1005 | |
| NOT_FOUND | 1006 | |
| GENERAL_RECAPTCHA_FAILED | 1100 | |
| USERNAME_NOT_FOUND | 1007 | |
| PHONE_HAS_NO_MEMBER | 1008 | |
| MAIN_MEMBER_NOT_SET | 1009 | |
| DISPLAY_NAME_CORRUPTED | 1010 | |
| USERNAME_DENORMALIZED | 1011 |
ErrMakeLoginToken.General
| Name | Number | Description |
|---|---|---|
| GENERAL_NOTSET | 0 | |
| GENERAL_FAILED | 1001 | |
| GENERAL_APPID_APPSECRET_REQUIRED | 1002 |
ErrMe.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| TOKEN_INVALID | 1001 | |
| FAILED | 1002 |
ErrMemberMigrationStatus.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| GENERAL_FAILED | 1001 |
ErrNewMember.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| TOKEN_INVALID | 1001 | |
| DISPLAY_NAME_INVALID | 1002 | |
| MAXIMUM_MEMBER | 1003 | 手機下的用戶已達上限 |
| FAILED | 1004 |
ErrObject.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| NOT_FOUND | 1000 |
ErrOtherMember.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| TOKEN_INVALID | 1001 | |
| FAILED | 1002 |
ErrReadObject.General
| Name | Number | Description |
|---|---|---|
| GENERAL_NOTSET | 0 | |
| GENERAL_FAILED | 1001 | |
| GENERAL_UIDS_OR_UUIDS_REQUIRED | 1002 | |
| GENERAL_NOT_FOUND_ANY | 1003 |
ErrRegister.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| EXISTING_MEMBER | 1002 | |
| SESSION_INVALID | 1003 | |
| CODE_INVALID | 1004 | |
| NAME_INVALID | 1005 | |
| NAME_EXISTING | 1006 | |
| CODE_PENDING_10 | 1007 | |
| CODE_PENDING | 1008 | |
| RETRY_REQUIRED | 1009 | |
| GENERAL_RECAPTCHA_FAILED | 1100 |
ErrSetMemberEmail.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| EMAIL_EXISTS | 1002 |
ErrSetMemberPassword.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| PWD_ISSUE | 1002 |
ErrSys.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| READONLY | 1001 | |
| NOT_ONLINE | 1002 |
ErrUnlockSessionToken.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| GENERAL_FAILED | 1001 | |
| GENERAL_RECAPTCHA_FAILED | 1100 |
ErrValidateAccessToken.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| TOKEN_INVALID | 1001 | |
| FAILED | 1002 |
ErrValidateLoginToken.General
| Name | Number | Description |
|---|---|---|
| GENERAL_NOTSET | 0 | |
| GENERAL_FAILED | 1001 | |
| GENERAL_INVALID | 1002 | |
| GENERAL_APPID_APPSECRET_REQUIRED | 1003 |
ErrValidateNewMember.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| EXISTING_PHONE | 1002 | |
| NAME_INVALID | 1005 | |
| TOKEN_INVALID | 1006 | |
| MAXIMUM_MEMBER | 1010 | 手機下的用戶已達上限 |
ErrValidatePhone.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| EXISTING_PHONE | 1002 | |
| SESSION_INVALID | 1003 | |
| CODE_INVALID | 1004 | |
| NAME_INVALID | 1005 | |
| TOKEN_INVALID | 1006 | |
| NAME_EXISTING | 1007 | |
| CODE_PENDING_10 | 1008 | |
| CODE_PENDING | 1009 | |
| MAXIMUM_MEMBER | 1010 | 手機下的用戶已達上限 |
| GENERAL_RECAPTCHA_FAILED | 1100 |
ErrValidatePhoneV2.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| EXISTING_PHONE | 1002 | |
| SESSION_INVALID | 1003 | |
| CODE_INVALID | 1004 | |
| TOKEN_INVALID | 1006 | |
| CODE_PENDING_10 | 1008 | |
| CODE_PENDING | 1009 | |
| MAXIMUM_MEMBER | 1010 | 手機下的用戶已達上限 |
| GENERAL_RECAPTCHA_FAILED | 1100 |
general/member/first.proto
AccessTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| auth_token | string | ||
| object_id | string | optional, 不填則自動選為預設用戶 | |
| app_id | string |
AccessTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
AuthResetUpdateRequest
| Field | Type | Label | Description |
|---|---|---|---|
| auth_reset_token | string | ||
| password | string | ||
| confirm_password | string | ||
| security_question | SecurityQuestion |
AuthResetUpdateResponse
AuthResetVerifyEmailCodeRequest
| Field | Type | Label | Description |
|---|---|---|---|
| code | string |
AuthResetVerifyEmailCodeResponse
| Field | Type | Label | Description |
|---|---|---|---|
| auth_reset_token | string |
AuthResetVerifyEmailRequest
| Field | Type | Label | Description |
|---|---|---|---|
| recaptcha_token | string | ||
| redirect_email | string | redirect link in email template | |
| display_name | string | ||
| string | |||
| redirect_success | string |
AuthResetVerifyEmailResponse
AuthResetVerifyPhoneCodeRequest
| Field | Type | Label | Description |
|---|---|---|---|
| code | string | ||
| phone | string | ||
| displayName | string |
AuthResetVerifyPhoneCodeResponse
| Field | Type | Label | Description |
|---|---|---|---|
| auth_reset_token | string |
AuthResetVerifyPhoneRequest
| Field | Type | Label | Description |
|---|---|---|---|
| recaptcha_token | string | ||
| display_name | string | ||
| phone | string |
AuthResetVerifyPhoneResponse
AvPlusRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
AvPlusResponse
| Field | Type | Label | Description |
|---|---|---|---|
| is_vip | bool |
DeleteAddressBookRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| address_book_id | int64 |
DeleteAddressBookResponse
GetAddressBooksRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
GetAddressBooksResponse
| Field | Type | Label | Description |
|---|---|---|---|
| address_books | pan.atom.member.AddressBook | repeated |
GetPassportTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
GetPassportTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| passport_token | string | ||
| qrcode_base64 | string | ||
| barcode_base64 | string |
GetQRCodeRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
GetQRCodeResponse
| Field | Type | Label | Description |
|---|---|---|---|
| image_content | string | ||
| display_name | string | ||
| uid | int64 | ||
| avatar | string | ||
| uuid | string | ||
| verify_code | string | ||
| phone_id | string |
InitGenderRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| gender | pan.atom.member.Gender |
InitGenderResponse
LoginRequest
| Field | Type | Label | Description |
|---|---|---|---|
| phase | LoginRequest.Phase | ||
| phase_session_valid | string | ||
| phase_session_token | string | ||
| phase_check_existence_value | string | ||
| phase_input_code_value | string | ||
| phase_input_code_ques_index | int32 | ||
| phase_input_code_ques_value | string | ||
| phase_check_existence_country_code | string | ||
| app_id | string | ||
| login_type | LoginRequest.LoginType | ||
| link_to_input | string |
LoginResponse
| Field | Type | Label | Description |
|---|---|---|---|
| phase | LoginRequest.Phase | ||
| next_phase | LoginRequest.Phase | ||
| phase_check_existence_login_type | LoginResponse.LoginType | ||
| phase_check_existence_question | bool | ||
| phase_input_code_result | LoginResponse.CodeResult | ||
| phase_input_code_time_remaining | int64 | ||
| phase_input_ques_result | LoginResponse.CodeResult | ||
| phase_done_auth_token | string | ||
| phase_session_token | string |
LogoutRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| token2 | string |
LogoutResponse
LogoutResponse.Error
MakeLoginTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| app_secret | string | ||
| auth_url | string |
MakeLoginTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| login_token | string |
MeRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| app_id | string |
MeResponse
| Field | Type | Label | Description |
|---|---|---|---|
| user | pan.atom.member.Object |
MemberMigrationStatusRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
MemberMigrationStatusResponse
| Field | Type | Label | Description |
|---|---|---|---|
| status | MemberMigrationStatusResponse.MigrationStatus |
NewMemberRequest
| Field | Type | Label | Description |
|---|---|---|---|
| auth_token | string | ||
| display_name | string | ||
| password | string | ||
| confirm_password | string | ||
| security_question | SecurityQuestion | ||
| session_token | string | ||
| app_id | string |
NewMemberResponse
| Field | Type | Label | Description |
|---|---|---|---|
| object | pan.atom.member.Object |
OtherMemberRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
OtherMemberResponse
| Field | Type | Label | Description |
|---|---|---|---|
| objects | pan.atom.member.Object | repeated |
QueryMemberCredentialStatusRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| object_id | string |
QueryMemberCredentialStatusResponse
| Field | Type | Label | Description |
|---|---|---|---|
| has_password | bool | ||
| has_email | bool | ||
| has_security_question | bool | ||
| email_verified | bool |
ReadObjectRequest
| Field | Type | Label | Description |
|---|---|---|---|
| uids | int64 | repeated | |
| uuids | string | repeated | |
| ignore_dz | bool | ||
| keyword | string |
ReadObjectResponse
| Field | Type | Label | Description |
|---|---|---|---|
| objects | pan.atom.member.Object | repeated |
RegisterRequest
| Field | Type | Label | Description |
|---|---|---|---|
| phase | RegisterRequest.Phase | ||
| phase_session_valid | string | ||
| phase_session_token | string | ||
| phase_check_existence_value | string | ||
| phase_input_code_value | string | ||
| phase_input_name_value | string | ||
| phase_check_existence_country_code | string | ||
| app_id | string |
RegisterResponse
| Field | Type | Label | Description |
|---|---|---|---|
| phase | RegisterRequest.Phase | ||
| next_phase | RegisterRequest.Phase | ||
| phase_input_code_result | RegisterResponse.CodeResult | ||
| phase_input_code_time_remaining | int64 | ||
| phase_done_auth_token | string | ||
| phase_session_token | string |
SaveAddressBookRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| address_book | pan.atom.member.AddressBook | id <= 0 為新增 |
SaveAddressBookResponse
| Field | Type | Label | Description |
|---|---|---|---|
| address_book | pan.atom.member.AddressBook |
SecurityQuestion
| Field | Type | Label | Description |
|---|---|---|---|
| question | string | ||
| answer | string |
SendEmailVerificationRequest
| Field | Type | Label | Description |
|---|---|---|---|
| redirect | string | only jkf hosts | |
| pan_access_token | string | ||
| session_token | string | ||
| uid | int32 |
SendEmailVerificationResponse
SendPhoneVerificationRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| session_token | string | ||
| target_phone_order | int64 |
SendPhoneVerificationResponse
SetMemberEmailRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| string | |||
| redirect | string |
SetMemberEmailResponse
SetMemberPasswordRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| password | string | ||
| confirm_password | string | ||
| reset_code | string |
SetMemberPasswordResponse
SwitchMemberRequest
| Field | Type | Label | Description |
|---|---|---|---|
| verify_token | string | ||
| pan_access_token | string | ||
| switch_to_object_id | string | ||
| app_id | string |
SwitchMemberResponse
| Field | Type | Label | Description |
|---|---|---|---|
| auth_token | string | ||
| object_id | string |
UniversalReadObjectRequest
| Field | Type | Label | Description |
|---|---|---|---|
| uids | int64 | repeated | |
| uuids | string | repeated | |
| hash_ids | string | repeated | |
| ignore_dz | bool | ||
| keyword | string | 只支援 hashids and uids |
UniversalReadObjectResponse
| Field | Type | Label | Description |
|---|---|---|---|
| objects | pan.atom.member.Object | repeated |
UnlockSessionTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| phase_session_token | string | ||
| phase_session_valid | string | ||
| platform | UnlockSessionTokenRequest.Platform |
UnlockSessionTokenResponse
UpdateAvatarRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string | ||
| avatar | bytes |
UpdateCredentialRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_auth_token | string | ||
| object_id | string | ||
| original_password | string | ||
| new_password | string | ||
| confirm_new_password | string | ||
| string | |||
| security_question | SecurityQuestion | ||
| email_verification_redirect | string | ||
| verify_token | string |
UpdateCredentialResponse
UpdateSecurityQuestionRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| update_token | string | ||
| security_question | SecurityQuestion |
UpdateSecurityQuestionResponse
UpdateSecurityQuestionResponse.Error
ValidateAccessTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| access_token | string |
ValidateAccessTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| info | pan.atom.member.TokenInfo |
ValidateDisplayNameRequest
| Field | Type | Label | Description |
|---|---|---|---|
| display_name | string |
ValidateDisplayNameResponse
ValidateDisplayNameV2Request
| Field | Type | Label | Description |
|---|---|---|---|
| display_name | string |
ValidateDisplayNameV2Response
ValidateLoginTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| login_token | string | ||
| app_id | string | ||
| app_secret | string |
ValidateLoginTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| auth_url | string |
ValidateNewMemberRequest
| Field | Type | Label | Description |
|---|---|---|---|
| current_phone_auth_token | string | ||
| new_member_access_token | string | ||
| display_name | string | ||
| session_token | string |
ValidateNewMemberResponse
| Field | Type | Label | Description |
|---|---|---|---|
| object | pan.atom.member.Object |
ValidatePassportTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| passport_token | string |
ValidatePassportTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| uuid | string | ||
| uid | int64 | ||
| phone | string | ||
| display_name | string |
ValidatePhoneRequest
| Field | Type | Label | Description |
|---|---|---|---|
| phase | ValidatePhoneRequest.Phase | ||
| phase_session_valid | string | ||
| phase_session_token | string | ||
| phase_check_existence_value | string | ||
| phase_input_code_value | string | ||
| phase_input_name_value | string | ||
| phase_check_existence_country_code | string | ||
| access_token | string | ||
| app_id | string |
ValidatePhoneResponse
| Field | Type | Label | Description |
|---|---|---|---|
| phase | ValidatePhoneRequest.Phase | ||
| next_phase | ValidatePhoneRequest.Phase | ||
| phase_input_code_result | ValidatePhoneResponse.CodeResult | ||
| phase_input_code_time_remaining | int64 | ||
| phase_session_token | string | ||
| new_auth_token | string |
ValidatePhoneV2Request
| Field | Type | Label | Description |
|---|---|---|---|
| phase | ValidatePhoneV2Request.Phase | ||
| phase_session_valid | string | ||
| phase_session_token | string | ||
| phase_check_existence_value | string | ||
| phase_input_code_value | string | ||
| phase_check_existence_country_code | string | ||
| access_token | string | ||
| app_id | string |
ValidatePhoneV2Response
| Field | Type | Label | Description |
|---|---|---|---|
| phase | ValidatePhoneV2Request.Phase | ||
| next_phase | ValidatePhoneV2Request.Phase | ||
| phase_input_code_result | ValidatePhoneV2Response.CodeResult | ||
| phase_input_code_time_remaining | int64 | ||
| phase_session_token | string | ||
| new_auth_token | string |
ValidateQRCodeRequest
| Field | Type | Label | Description |
|---|---|---|---|
| uuid | string | ||
| uid | int64 | ||
| verify_code | string |
ValidateQRCodeResponse
VerifyEmailCodeRequest
| Field | Type | Label | Description |
|---|---|---|---|
| code | string |
VerifyEmailCodeResponse
| Field | Type | Label | Description |
|---|---|---|---|
| verify_token | string |
VerifyMemberByPasswordRequest
| Field | Type | Label | Description |
|---|---|---|---|
| recaptcha_token | string | ||
| display_name | string | ||
| string | |||
| password | string | ||
| security_question | SecurityQuestion | ||
| session_token | string |
VerifyMemberByPasswordResponse
| Field | Type | Label | Description |
|---|---|---|---|
| verify_token | string |
VerifyPhoneCodeRequest
| Field | Type | Label | Description |
|---|---|---|---|
| code | string | ||
| pan_access_token | string | ||
| session_token | string |
VerifyPhoneCodeResponse
| Field | Type | Label | Description |
|---|---|---|---|
| verify_token | string |
AuthResetUpdateResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrNewPasswordConfirmingFailed | 1001 | |
| ErrSecurityQuestionAnswerRequired | 1002 | |
| ErrFailed | 1003 | |
| ErrNewPasswordRule | 1004 | |
| ErrPasswordRequired | 1005 |
AuthResetVerifyEmailCodeResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrCodeInvalid | 1001 | |
| ErrFailed | 1002 |
AuthResetVerifyEmailResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrSessionInvalid | 1001 | |
| ErrEmailRequired | 1002 | |
| ErrFailed | 1003 | |
| ErrReachSendLimit | 1004 | |
| ErrDisplayNameRequired | 1005 |
AuthResetVerifyPhoneCodeResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrCodeInvalid | 1001 | |
| ErrFailed | 1002 |
AuthResetVerifyPhoneResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrReachSendLimit | 1001 | |
| ErrFailed | 1002 | |
| ErrSessionInvalid | 1003 | |
| ErrPhoneRequired | 1004 | |
| ErrDisplayNameRequired | 1005 |
GetQRCodeResponse.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
LoginRequest.LoginType
| Name | Number | Description |
|---|---|---|
| LOGIN_TYPE_DEFAULT | 0 | |
| LOGIN_TYPE_PHONE | 1 | |
| LOGIN_TYPE_EMAIL | 2 | |
| LOGIN_TYPE_EMAIL_OTC | 3 |
LoginRequest.Phase
| Name | Number | Description |
|---|---|---|
| PHASE_DEFAULT | 0 | |
| PHASE_CHECK_EXISTENCE | 1 | |
| PHASE_INPUT_CODE | 2 | |
| PHASE_DONE | 3 | |
| PHASE_ANDROID_DEFAULT | 4 | |
| PHASE_IOS_DEFAULT | 5 | |
| PHASE_ANDROID_ENTERPISE | 6 | For Android Enterprise reCaptcha |
| PHASE_IOS_ENTERPISE | 7 | For iOS Enterprise reCaptcha |
LoginResponse.CodeResult
| Name | Number | Description |
|---|---|---|
| CODE_RESULT_DEFAULT | 0 | |
| CODE_RESULT_OK | 1 | |
| CODE_RESULT_RESENT | 3 |
LoginResponse.LoginType
| Name | Number | Description |
|---|---|---|
| LOGIN_TYPE_DEFAULT | 0 | |
| LOGIN_TYPE_PHONE | 1 | |
| LOGIN_TYPE_EMAIL | 2 | |
| LOGIN_TYPE_EMAIL_OTC | 3 |
LogoutResponse.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
MeResponse.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__NotExists | 1001 | |
| Error__Failed | 1002 |
MemberMigrationStatusResponse.MigrationStatus
| Name | Number | Description |
|---|---|---|
| STATUS_DEFAULT | 0 | |
| STATUS_NEW_PAN | 1 | |
| STATUS_OLD_JKF | 2 | |
| STATUS_OLD_1128 | 3 | |
| STATUS_RETURNED_USER | 4 | |
| STATUS_VALID_PAN | 5 | |
| STATUS_VERIFY_PHONE | 6 |
NewMemberResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrPasswordIsEmpty | 2001 | |
| ErrPasswordConfirmingFailed | 2002 |
QueryMemberCredentialStatusResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrFailed | 1002 |
RegisterRequest.Phase
| Name | Number | Description |
|---|---|---|
| PHASE_DEFAULT | 0 | |
| PHASE_CHECK_EXISTENCE | 1 | |
| PHASE_INPUT_CODE | 2 | |
| PHASE_INPUT_NAME | 3 | |
| PHASE_DONE | 4 |
RegisterResponse.CodeResult
| Name | Number | Description |
|---|---|---|
| CODE_RESULT_DEFAULT | 0 | |
| CODE_RESULT_OK | 1 | |
| CODE_RESULT_RESENT | 3 |
SendEmailVerificationResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrReachSendLimit | 1001 | |
| ErrFailed | 1002 |
SendPhoneVerificationResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrReachSendLimit | 1001 | |
| ErrFailed | 1002 |
SwitchMemberResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrVerifyTokenInvalid | 1001 | |
| ErrFailed | 1002 | |
| ErrObjectIDRequired | 1003 |
UnlockSessionTokenRequest.Platform
| Name | Number | Description |
|---|---|---|
| WEB | 0 | |
| IOS | 1 | |
| ANDROID | 2 | |
| IOS_ENTERPRISE | 3 | |
| ANDROID_ENTERPRISE | 4 |
UpdateCredentialResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrOriginalPasswordInvalid | 1001 | |
| ErrNewPasswordConfirmingFailed | 1002 | |
| ErrEmailDuplicated | 1003 | |
| ErrFailed | 1004 | |
| ErrNewPasswordRule | 1005 |
UpdateSecurityQuestionResponse.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
ValidateDisplayNameV2Response.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrSpecialChar | 1001 | |
| ErrDuplicated | 1002 | |
| ErrLength | 1003 | |
| ErrFailed | 1004 |
ValidatePhoneRequest.Phase
| Name | Number | Description |
|---|---|---|
| PHASE_DEFAULT | 0 | |
| PHASE_CHECK_EXISTENCE | 1 | |
| PHASE_INPUT_CODE | 2 | |
| PHASE_INPUT_NAME | 3 | |
| PHASE_DONE | 4 | |
| PHASE_ANDROID_DEFAULT | 5 | |
| PHASE_IOS_DEFAULT | 6 | |
| PHASE_ANDROID_ENTERPISE | 7 | For Android Enterprise reCaptcha |
| PHASE_IOS_ENTERPISE | 8 | For iOS Enterprise reCaptcha |
ValidatePhoneResponse.CodeResult
| Name | Number | Description |
|---|---|---|
| CODE_RESULT_DEFAULT | 0 | |
| CODE_RESULT_OK | 1 | |
| CODE_RESULT_RESENT | 3 |
ValidatePhoneV2Request.Phase
| Name | Number | Description |
|---|---|---|
| PHASE_DEFAULT | 0 | |
| PHASE_CHECK_EXISTENCE | 1 | |
| PHASE_INPUT_CODE | 2 | |
| PHASE_DONE | 4 | |
| PHASE_ANDROID_DEFAULT | 5 | |
| PHASE_IOS_DEFAULT | 6 | |
| PHASE_ANDROID_ENTERPISE | 7 | For Android Enterprise reCaptcha |
| PHASE_IOS_ENTERPISE | 8 | For iOS Enterprise reCaptcha |
ValidatePhoneV2Response.CodeResult
| Name | Number | Description |
|---|---|---|
| CODE_RESULT_DEFAULT | 0 | |
| CODE_RESULT_OK | 1 | |
| CODE_RESULT_RESENT | 3 |
ValidateQRCodeResponse.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
VerifyEmailCodeResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrCodeInvalid | 1001 | |
| ErrFailed | 1002 |
VerifyMemberByPasswordResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrPasswordRequired | 1001 | |
| ErrIdentityRequired | 1002 | |
| ErrFailed | 1003 | |
| ErrAuthFailed | 1004 | |
| ErrSecurityQuestionRequired | 1005 |
VerifyPhoneCodeResponse.Err
| Name | Number | Description |
|---|---|---|
| ErrNone | 0 | |
| ErrCodeInvalid | 1001 | |
| ErrFailed | 1002 |
MemberService
MemberServiceV2
lever/member/error.proto
ErrAuthToken
ErrDeactivateMember
ErrObject
ErrReadObject
ErrRevokeAuth
ErrAuthToken.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 | |
| LOGIN_TOKEN_INVALID | 1002 |
ErrDeactivateMember.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 |
ErrObject.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| NOT_FOUND | 1001 |
ErrReadObject.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 |
ErrRevokeAuth.General
| Name | Number | Description |
|---|---|---|
| GENERAL_DEFAULT | 0 | |
| FAILED | 1001 |
lever/member/first.proto
AuthTokenRequest
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| login_token | string |
AuthTokenResponse
| Field | Type | Label | Description |
|---|---|---|---|
| auth_token | string |
SendSMSRequest
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| text | string |
SendSMSResponse
MemberService
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| AuthToken | AuthTokenRequest | AuthTokenResponse | |
| SendSMS | SendSMSRequest | SendSMSResponse |
oauth/app.proto
GetAccessTokenRequest
GetAccessTokenResponse
GetDetailRequest
| Field | Type | Label | Description |
|---|---|---|---|
| scope | string | ||
| redirect_uri | string | ||
| client_id | string | ||
| state | string | ||
| response_type | string | ||
| nonce | string |
GetDetailResponse
| Field | Type | Label | Description |
|---|---|---|---|
| app_display_name | string | ||
| app_privacy_policy_url | string | ||
| app_terms_of_service_url | string | ||
| permission_all | string | repeated | |
| app_logo_url | string | ||
| user | pan.atom.member.Identity | ||
| app_summary | string |
GetRefreshTokenRequest
GetRefreshTokenResponse
GetDetailResponse.Error
| Name | Number | Description |
|---|---|---|
| Error__none | 0 |
App
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GetDetail | GetDetailRequest | GetDetailResponse | |
| GetAccessToken | GetAccessTokenRequest | GetAccessTokenResponse | |
| GetRefreshToken | GetRefreshTokenRequest | GetRefreshTokenResponse |
oauth/consent.proto
ApproveRequest
ApproveResponse
DoRequest
DoResponse
RejectRequest
RejectResponse
ConsentProcess
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Do | DoRequest | DoResponse | |
| Approve | ApproveRequest | ApproveResponse | |
| Reject | RejectRequest | RejectResponse |
pan/account/v1/base/general.proto
App
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| AvPlus | 1 | |
| Jvid | 2 | |
| JkFace | 3 | |
| Forum | 4 |
pan/account/v1/member/base.proto
BaseInfo
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| uid | int64 | ||
| huid | string | hashed uid | |
| username | string | 用戶名 | |
| display_name | string | 暱稱 | |
| avatar | string | 大頭貼路徑 | |
| string | optional | 綁定信箱 | |
| is_activated | bool | 是否已被啟用 | |
| jpass_id | string | = jkf_id, phone_id | |
| is_owner | bool | 是否為主帳號 | |
| can_new_child | bool | 是否可以新增子帳號 | |
| is_email_verified | bool | ||
| last_used_at | google.protobuf.Timestamp | 最後登入時間 | |
| created_at | google.protobuf.Timestamp | 創建時間 | |
| modified_at | google.protobuf.Timestamp | 最後修改時間 | |
| is_lady | bool | 是否為女郎 | |
| connected_apps | pan.account.v1.base.App | repeated | 有關聯的平台 |
pan/account/v1/account/account.proto
AccountAddressLiving
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| full_name | string | ||
| country | string | ||
| zip_code | string | ||
| city | string | ||
| area | string | ||
| address | string | ||
| phone | string | ||
| main_living | bool |
AccountAddressLivingInfoAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| address_all | AccountAddressLiving | repeated |
AccountAddressLivingInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
AccountAddressLivingPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| data | AccountAddressLiving |
AccountAddressShipping
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| full_name | string | ||
| country | string | ||
| zip_code | string | ||
| city | string | ||
| area | string | ||
| address | string | ||
| phone | string | ||
| default_shipping | bool |
AccountAddressShippingInfoAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| address_all | AccountAddressShipping | repeated |
AccountAddressShippingInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
AccountAddressShippingPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| data | AccountAddressShipping |
AccountBasicInfoAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| full_name | string | ||
| phone | string |
AccountBasicInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
ListMembersAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| members | pan.account.v1.member.BaseInfo | repeated | 所有帳號的資料 |
ListMembersPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
SetAddressLivingAsMainPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| address_id | string |
SetAddressLivingAsMainStatus
SetAddressShippingAsDefaultPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| address_id | string |
SetAddressShippingAsDefaultStatus
AccountCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| SetAddressLivingAsMain | SetAddressLivingAsMainPayload | SetAddressLivingAsMainStatus | |
| SetAddressShippingAsDefault | SetAddressShippingAsDefaultPayload | SetAddressShippingAsDefaultStatus |
AccountQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| BasicInfo | AccountBasicInfoPayload | AccountBasicInfoAnswer | deprecated |
| AddressLivingInfo | AccountAddressLivingInfoPayload | AccountAddressLivingInfoAnswer | |
| AddressShipping | AccountAddressShippingInfoPayload | AccountAddressShippingInfoAnswer | |
| ListMembers | ListMembersPayload | ListMembersAnswer | 查詢指定pan_access_token的資料 |
AddressLivingCRUD
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Create | AccountAddressLivingPayload | AccountAddressLiving | |
| Read | AccountAddressLivingPayload | AccountAddressLiving | |
| Update | AccountAddressLivingPayload | AccountAddressLiving | |
| Delete | AccountAddressLivingPayload | AccountAddressLiving |
AddressShippingCRUD
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Create | AccountAddressShippingPayload | AccountAddressShipping | |
| Read | AccountAddressShippingPayload | AccountAddressShipping | |
| Update | AccountAddressShippingPayload | AccountAddressShipping | |
| Delete | AccountAddressShippingPayload | AccountAddressShipping |
pan/account/v1/apea/apea.proto
APEACommandError
APEAQueryError
MIDStatusRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
MIDStatusResponse
| Field | Type | Label | Description |
|---|---|---|---|
| is_valid | bool | 身份已通過TWID驗證 |
ValidateMIDRequest
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| identity | string | 身分證 | |
| phone_order | int64 | 在pan存儲的電話編號,來自PhoneNumberList |
ValidateMIDResponse
APEACommandError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| TokenInValid | 2001 | |
| IdentityInValid | 2002 | |
| InLocked | 2003 |
APEAQueryError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| TokenInValid | 2001 | |
| IdentityInValid | 2002 | |
| InLocked | 2003 |
APEACommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| ValidateMID | ValidateMIDRequest | ValidateMIDResponse | 以手機號碼+身份證驗證TWID |
APEAQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| MIDStatus | MIDStatusRequest | MIDStatusResponse | 查詢該pan帳號在APEA存儲的TWID驗證狀態 |
pan/account/v1/base/error.proto
Error
Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| RecaptchaFailed | 1100 | recaptcha驗證失敗 |
| VerifyTokenInvalid | 1151 | verify token無效 |
| JPassTokenInvalid | 1152 | jpass domain相關token無效 |
| AccessTokenInvalid | 1201 | pan access token無效 |
| PhoneDuplicated | 1202 | 電話號碼已被使用 |
| PhoneFormatInvalid | 1203 | 電話號碼格式錯誤 |
| ReachedMessageLimit | 1204 | 達到簡訊發送上限 |
| VerificationFailed | 1205 | 驗證失敗 |
| NoNeedToProcess | 1206 | 不需要調用該API |
| UsernameInvalid | 1207 | username格式有誤 |
| UsernameDuplicated | 1208 | username已被使用 |
| OperatorNotMainMember | 1209 | 當前操作者非主帳號 |
| MemberNotFound | 1210 | 查無指定member |
| MemberInvalid | 1211 | member存在,但並非可操作對象 |
| MemberDuplicated | 1212 | member關聯重複 |
| FailedToNotifyEvent | 1213 | Pub/Sub fail |
| FailedToIdentifyIP | 1214 | 無法解析用戶IP |
pan/account/v1/member/member.proto
AddPhoneAnswer
AddPhonePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| verify_token | string | 身份驗證token | |
| recaptcha_token | string | recaptcha驗證得到的token | |
| phone | string | 新電話號碼 | |
| country_code | string | 電話的國家分類 |
CredentialStatusAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| records | CredentialStatusAnswer.Record | repeated |
CredentialStatusAnswer.Record
| Field | Type | Label | Description |
|---|---|---|---|
| target_id | Identity | ||
| has_phone | bool | ||
| has_email | bool | ||
| has_sec_quest | bool | ||
| has_password | bool | ||
| is_virtual | bool | ||
| is_main_member | bool |
CredentialStatusPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_ids | Identity | repeated |
GetUsernamesBySessionAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| names | GetUsernamesBySessionAnswer.Name | repeated |
GetUsernamesBySessionAnswer.Name
| Field | Type | Label | Description |
|---|---|---|---|
| username | string | ||
| is_valid | bool | ||
| name_type | GetUsernamesBySessionAnswer.NameType |
GetUsernamesBySessionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| session_token | string |
Identity
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| object_id | string | ||
| huid | string | ||
| string | |||
| username | string | ||
| display_name | string |
MemberAvatarUploaderAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| signed_post_policy | MemberAvatarUploaderAnswer.SignedPostPolicyEntry | repeated | |
| url_to_upload | string | ||
| display_image_path | string |
MemberAvatarUploaderAnswer.Error
MemberAvatarUploaderAnswer.SignedPostPolicyEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
MemberAvatarUploaderPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| image_type | MemberAvatarUploaderPayload.Image.FileType |
MemberAvatarUploaderPayload.Image
MemberBasicInfoAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| full_name | string | ||
| gender | MemberBasicInfoAnswer.Gender.Value | ||
| birthday | google.protobuf.Timestamp | ||
| salary | MemberBasicInfoAnswer.Salary.Value | ||
| professional | string |
MemberBasicInfoAnswer.Gender
MemberBasicInfoAnswer.Salary
MemberBasicInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
MemberCommandError
MemberCompanyJobInfoAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| company | string | ||
| position | string |
MemberCompanyJobInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
MemberEducationInfoAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| school | string | ||
| max_level | string |
MemberEducationInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
MemberIntroductionAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| introduction | string |
MemberIntroductionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
MemberPreferenceAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| locale | string |
MemberPreferencePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
MemberQueryError
MemberSocialInfoAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| line | string | ||
| string | |||
| string | |||
| jvid | string | ||
| link | string | ||
| string | |||
| tiktok | string |
MemberSocialInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
MergeUsernameAnswer
MergeUsernamePayload
| Field | Type | Label | Description |
|---|---|---|---|
| session_token | string | 登入pan時產生的臨時token | |
| username | string | 新username |
MyOperationLogAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| log_all | OperationLog | repeated | |
| pager | Pager |
MyOperationLogPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| start_at | google.protobuf.Timestamp | ||
| pager | Pager |
OperationLog
| Field | Type | Label | Description |
|---|---|---|---|
| action_name | string | ||
| action_payload | string | ||
| occur_date | google.protobuf.Timestamp |
Pager
| Field | Type | Label | Description |
|---|---|---|---|
| page_current | int64 | ||
| page_total | int64 | ||
| page_size | int64 | ||
| item_total | int64 |
PhoneNumberListAnswer
error -> Internal
| Field | Type | Label | Description |
|---|---|---|---|
| records | PhoneNumberListAnswer.Record | repeated | |
| default_index | int64 | 該帳戶的默認手機號碼,默認值0 | |
| twid_verified_phone_index | int64 | 默認值-1 (need_twid_status設為false會返回-1) |
PhoneNumberListAnswer.Record
| Field | Type | Label | Description |
|---|---|---|---|
| phone | string | 電話號碼 | |
| phone_order | int64 | 電話號碼升序編號,從1起算 | |
| created_at | google.protobuf.Timestamp | 電話號碼綁定時間 |
PhoneNumberListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| need_twid_status | bool | 是否需要標示有通過twid驗證的號碼 |
ResendEmailCodeAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| verify_token | string | 身份驗證token |
ResendEmailCodePayload
| Field | Type | Label | Description |
|---|---|---|---|
| verify_token | string | 身份驗證token |
ResendSmsCodeAnswer
ResendSmsCodePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| verify_token | string | 身份驗證token |
SwitchDefaultPhoneAnswer
SwitchDefaultPhonePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | main member only | |
| verify_token | string | 身份驗證token | |
| recaptcha_token | string | 驗證recaptcha得到的token | |
| phone_order | int64 | 要設定為默認電話的電話編號(升序,從1起算) |
SwitchMainMemberAnswer
SwitchMainMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 若該token並非當前主帳號則進行阻擋 | |
| uid | int64 | 新的主帳號的uid,若非當前子帳號之一則阻擋 |
UpdateBasicInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| basic_info | MemberBasicInfoAnswer |
UpdateBasicInfoStatus
UpdateCompanyJobInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| company_job | MemberCompanyJobInfoAnswer |
UpdateCompanyJobInfoStatus
UpdateEducationInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| education | MemberEducationInfoAnswer |
UpdateEducationInfoStatus
UpdateEmailPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| verify_token | string | 驗證身份的token | |
| string | 新信箱 | ||
| redirect_url | string | 信箱連結的跳轉URL | |
| session_valid | string | 完成recaptcha驗證的token | |
| verify_token_type | VerifyTokenType | 身份驗證途徑 |
UpdateEmailStatus
| Field | Type | Label | Description |
|---|---|---|---|
| verify_token | string | 驗證身份的token |
UpdateIntroductionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| introduction | MemberIntroductionAnswer |
UpdateIntroductionStatus
UpdatePasswordPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| verify_token | string | 身份驗證token | |
| password | string | 新密碼 | |
| verify_token_type | VerifyTokenType | 身份驗證途徑 |
UpdatePasswordStatus
UpdatePreferencePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| preference | MemberPreferenceAnswer |
UpdatePreferenceStatus
UpdateSecurityQuestionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| verify_token | string | 身份驗證token | |
| question | string | 新提問 | |
| answer | string | 新答案 | |
| verify_token_type | VerifyTokenType | 身份驗證途徑 |
UpdateSecurityQuestionStatus
UpdateSocialInfoPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| social_info | MemberSocialInfoAnswer |
UpdateSocialInfoStatus
VerifyEmailCodePayload
| Field | Type | Label | Description |
|---|---|---|---|
| code | string | OTP code | |
| verify_token | string | 身份驗證token |
VerifyEmailCodeStatus
VerifySmsCodeAnswer
VerifySmsCodePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| verify_token | string | 身份驗證token | |
| sms_code | string | sms的otp code |
GetUsernamesBySessionAnswer.NameType
error code -> VerificationFailed | NoNeedToProcess | Internal
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Username | 1 | |
| DisplayName | 2 | |
| LegacyName | 3 |
MemberAvatarUploaderAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
MemberAvatarUploaderPayload.Image.FileType
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Jpeg | 1 | |
| Png | 2 | |
| Gif | 3 | |
| Bmp | 4 |
MemberBasicInfoAnswer.Gender.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Male | 1 | |
| Female | 2 |
MemberBasicInfoAnswer.Salary.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Level1 | 1 | |
| Level2 | 2 | |
| Level3 | 3 | |
| Level4 | 4 | |
| Level5 | 5 | |
| Level6 | 6 |
MemberCommandError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| EmailInvalid | 2001 | 信箱格式有誤 |
| EmailDuplicated | 2002 | 信箱重複 |
| EmailUnchangeable | 2003 | 信箱無變更 |
| FailedToSendEmail | 2004 | 驗證信發送失敗 |
| ReachedEmailSendCountLimit | 2005 | 驗證信發送超過次數上限 |
| NoNeedToProcess | 2006 | 不需要調用該API |
| SessionNotFound | 2007 | 查詢不到對應verify token的session紀錄 |
| OperatorNotMainMember | 2008 | 當前操作者非主帳號 |
| NewMainMemberInvalid | 2009 | 新主帳號為無效的uid |
| PasswordInvalid | 2010 | 密碼格式有誤 |
| CodeInvalid | 2011 | otp code不符 |
MemberQueryError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| SessionNotFound | 2001 | 查詢不到對應verify token的session紀錄 |
| OperatorNotMainMember | 2002 | 當前操作者非主帳號 |
VerifyTokenType
| Name | Number | Description |
|---|---|---|
| Phone | 0 | |
| Password | 1 |
MemberCommand
MemberQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| AvatarUploader | MemberAvatarUploaderPayload | MemberAvatarUploaderAnswer | |
| BasicInfo | MemberBasicInfoPayload | MemberBasicInfoAnswer | |
| SocialInfo | MemberSocialInfoPayload | MemberSocialInfoAnswer | |
| Introduction | MemberIntroductionPayload | MemberIntroductionAnswer | |
| CompanyJobInfo | MemberCompanyJobInfoPayload | MemberCompanyJobInfoAnswer | |
| EducationInfo | MemberEducationInfoPayload | MemberEducationInfoAnswer | |
| Preference | MemberPreferencePayload | MemberPreferenceAnswer | |
| MyOperationLog | MyOperationLogPayload | MyOperationLogAnswer | |
| GetUsernamesBySession | GetUsernamesBySessionPayload | GetUsernamesBySessionAnswer | 透過登入pan所產生的session token,得到該用戶的usernames (需完成Login phase 2驗證,且若username不需要升級會報錯) |
| PhoneNumberList | PhoneNumberListPayload | PhoneNumberListAnswer | 該帳號擁有的全部電話,default_index表示結果集中「默認電話」的對應index,twid_verified_phone_index表示結果集中「有通過TWID驗證的電話」的對應index。若操作者為子帳號會遮蔽號碼中的3碼 |
| CredentialStatus | CredentialStatusPayload | CredentialStatusAnswer |
pan/account/v1/friend/friendcommand.proto
AcceptFriendByPairTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 接收方token | |
| pair_token | string | 如果pair token驗證失敗,fallback會作為QR Code來驗證 |
AcceptFriendByPairTokenStatus
AcceptFriendByPairTokenStatus.Error
AddBlackPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 加入方token | |
| member_id | pan.account.v1.member.Identity | 被加入方id |
AddBlackStatus
AddBlackStatus.Error
CancelFriendRequestPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 取消方token | |
| requester | pan.account.v1.member.Identity | 取消方id (如果和token不符會報錯) | |
| target | pan.account.v1.member.Identity | 當初收到邀請的用戶的id |
CancelFriendRequestStatus
CancelFriendRequestStatus.Error
CreateFriendRequestPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 邀請方token | |
| requester | pan.account.v1.member.Identity | 邀請方id (如果和token不合會報錯) | |
| target | pan.account.v1.member.Identity | 被邀請方id | |
| message | string | deprecated |
CreateFriendRequestStatus
CreateFriendRequestStatus.Error
RemoveBlackPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 解除方的token | |
| member_id | pan.account.v1.member.Identity | 被解除方的id |
RemoveBlackStatus
RemoveBlackStatus.Error
RemoveBuddyPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 解除方的token | |
| member_id | pan.account.v1.member.Identity | 被解除方的id |
RemoveBuddyStatus
RemoveBuddyStatus.Error
ReplyFriendRequestPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 回覆方token | |
| requester | pan.account.v1.member.Identity | 回覆方id | |
| target | pan.account.v1.member.Identity | 接受回覆方id | |
| reply | ReplyFriendRequestPayload.Reply.Value | 是否同意成為好友 |
ReplyFriendRequestPayload.Reply
ReplyFriendRequestStatus
ReplyFriendRequestStatus.Error
AcceptFriendByPairTokenStatus.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 | |
| Expired | 1002 | |
| Invalid | 1003 |
AddBlackStatus.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
CancelFriendRequestStatus.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
CreateFriendRequestStatus.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
RemoveBlackStatus.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
RemoveBuddyStatus.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
ReplyFriendRequestPayload.Reply.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Accept | 1 | |
| Deny | 2 |
ReplyFriendRequestStatus.Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
FriendCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| RemoveBuddy | RemoveBuddyPayload | RemoveBuddyStatus | 解除好友(如果對方是官方帳號會阻擋) |
| RemoveBlack | RemoveBlackPayload | RemoveBlackStatus | 將對方從黑名單移除 |
| AddBlack | AddBlackPayload | AddBlackStatus | 將對方加入黑名單 |
| CreateFriendRequest | CreateFriendRequestPayload | CreateFriendRequestStatus | 發送好友邀請 |
| ReplyFriendRequest | ReplyFriendRequestPayload | ReplyFriendRequestStatus | 回覆好友邀請(同意或拒絕) |
| CancelFriendRequest | CancelFriendRequestPayload | CancelFriendRequestStatus | 取消送出的好友邀請 |
| AcceptFriendByPairToken | AcceptFriendByPairTokenPayload | AcceptFriendByPairTokenStatus | 透過pair token新增為好友 |
pan/account/v1/friend/friendquery.proto
Buddy
| Field | Type | Label | Description |
|---|---|---|---|
| member_id | pan.account.v1.member.Identity | 好友id | |
| display_name | string | 好友暱稱 | |
| avatar | string | 好友大頭貼路徑 | |
| modified | google.protobuf.Timestamp | 最後修改的時間 | |
| connected_at | google.protobuf.Timestamp | 成為好友(或是封鎖對方)的時間 |
FriendMyBlackAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| buddy_all | Buddy | repeated | 用戶列表 |
| pager | Pager | pagination的相關參數封裝 |
FriendMyBlackAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| search | string | 用戶暱稱的部分比對 | |
| pager | Pager | pagination的相關參數封裝 |
FriendMyBuddyAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| buddy_all | Buddy | repeated | 好友列表 |
| pager | Pager | pagination的相關參數封裝 |
FriendMyBuddyAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| search | string | 用戶暱稱的部分比對 | |
| pager | Pager | pagination的相關參數封裝 |
FriendMyBuddyByNewerDateAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| buddy_all | Buddy | repeated | |
| pager | Pager |
FriendMyBuddyByNewerDatePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| date | google.protobuf.Timestamp | ||
| pager | Pager |
FriendMyBuddyByOlderDateAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| buddy_all | Buddy | repeated | |
| pager | Pager |
FriendMyBuddyByOlderDatePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| date | google.protobuf.Timestamp | ||
| pager | Pager |
FriendMyBuddyWithFilterAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| buddy_all | Buddy | repeated | 好友列表 |
FriendMyBuddyWithFilterAnswer.Error
FriendMyBuddyWithFilterAnswer.IdError
查無用戶
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyBuddyWithFilterAnswer.IdError.Code | ||
| member_id | pan.account.v1.member.Identity | 對方id | |
| description | string |
FriendMyBuddyWithFilterAnswer.StatusError
查無好友關聯
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyBuddyWithFilterAnswer.StatusError.Code | ||
| member_id | pan.account.v1.member.Identity | 對方id |
FriendMyBuddyWithFilterPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| counterpart_all | pan.account.v1.member.Identity | repeated | 要查詢是否為好友的用戶id list |
FriendMyFriendRequestStatusWithFilterAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| status_all | FriendRequestStatus | repeated | 好友邀請回覆狀態列表 |
FriendMyFriendRequestStatusWithFilterAnswer.Error
FriendMyFriendRequestStatusWithFilterAnswer.IdError
查無用戶
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyFriendRequestStatusWithFilterAnswer.IdError.Code | ||
| member_id | pan.account.v1.member.Identity | ||
| description | string |
FriendMyFriendRequestStatusWithFilterAnswer.StatusError
查無好友邀請
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyFriendRequestStatusWithFilterAnswer.StatusError.Code | ||
| member_id | pan.account.v1.member.Identity |
FriendMyFriendRequestStatusWithFilterPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| counterpart_all | pan.account.v1.member.Identity | repeated | 要查詢的用戶id list |
FriendMyPendingAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| pending_all | FriendRequestPending | repeated | 好友邀請列表 |
| pager | Pager | pagination的相關參數封裝 |
FriendMyPendingAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| pager | Pager | pagination的相關參數封裝 | |
| search | string | 用戶暱稱的部分比對 |
FriendMyPendingWithFilterAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| pending_all | FriendRequestPending | repeated | 好友邀請列表 |
FriendMyPendingWithFilterAnswer.Error
FriendMyPendingWithFilterAnswer.IdError
查無用戶
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyPendingWithFilterAnswer.IdError.Code | ||
| member_id | pan.account.v1.member.Identity | ||
| description | string |
FriendMyPendingWithFilterAnswer.StatusError
查無好友邀請
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyPendingWithFilterAnswer.StatusError.Code | ||
| member_id | pan.account.v1.member.Identity |
FriendMyPendingWithFilterPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| counterpart_all | pan.account.v1.member.Identity | repeated | 查詢是否有收到對方邀請的用戶id list |
FriendMyRelationAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| relation_all | RelationState | repeated | 所有關聯狀態 |
FriendMyRelationAnswer.Error
FriendMyRelationAnswer.IdError
查無用戶
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyRelationAnswer.IdError.Code | ||
| member_id | pan.account.v1.member.Identity | ||
| description | string |
FriendMyRelationAnswer.StatusError
查無操作者資料(pan access token無效)
| Field | Type | Label | Description |
|---|---|---|---|
| code | FriendMyRelationAnswer.StatusError.Code | ||
| member_id | pan.account.v1.member.Identity |
FriendMyRelationPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| counterpart_all | pan.account.v1.member.Identity | repeated | 要查詢的用戶id list |
FriendMyRelationStatusAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| friend_count | int64 | 好友總數 |
FriendMyRelationStatusAnswer.Error
FriendMyRelationStatusPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
FriendRequestPending
| Field | Type | Label | Description |
|---|---|---|---|
| requester | pan.account.v1.member.Identity | 發出好友邀請者的id | |
| target | pan.account.v1.member.Identity | 收到好友邀請者的id | |
| created | google.protobuf.Timestamp | 邀請的發送時間 | |
| modified | google.protobuf.Timestamp | 邀請的最後修改時間 |
FriendRequestStatus
| Field | Type | Label | Description |
|---|---|---|---|
| requester | pan.account.v1.member.Identity | 發出好友邀請者 | |
| target | pan.account.v1.member.Identity | 收到好友邀請者 | |
| state | FriendRequestStatus.State.Value | 回覆狀態 | |
| created | google.protobuf.Timestamp | 邀請發出的時間 |
FriendRequestStatus.State
MyFriendPairTokenAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| pair_token | string |
MyFriendPairTokenAnswer.Error
MyFriendPairTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
Pager
| Field | Type | Label | Description |
|---|---|---|---|
| page_current | int64 | ||
| page_total | int64 | ||
| page_size | int64 | ||
| item_total | int64 | ||
| sort | Pager.Sort |
RelationState
| Field | Type | Label | Description |
|---|---|---|---|
| member_id | pan.account.v1.member.Identity | 該用戶的id | |
| is_friend | bool | 是好友 | |
| is_black | bool | 已加入黑名單 |
FriendMyBuddyWithFilterAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
FriendMyBuddyWithFilterAnswer.IdError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyBuddyWithFilterAnswer.StatusError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyFriendRequestStatusWithFilterAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
FriendMyFriendRequestStatusWithFilterAnswer.IdError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyFriendRequestStatusWithFilterAnswer.StatusError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyPendingWithFilterAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
FriendMyPendingWithFilterAnswer.IdError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyPendingWithFilterAnswer.StatusError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyRelationAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
FriendMyRelationAnswer.IdError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyRelationAnswer.StatusError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| NotFound | 1001 | |
| Failed | 1002 |
FriendMyRelationStatusAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
FriendRequestStatus.State.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Sent | 1 | |
| Pending | 2 | |
| Rejected | 3 | |
| Accepted | 4 |
MyFriendPairTokenAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
Pager.Sort
| Name | Number | Description |
|---|---|---|
| ASC | 0 | |
| DESC | 1 |
FriendQuery
pan/account/v1/general/general.proto
GeneralCommandError
UnlockSessionTokenAnswer
UnlockSessionTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| session_token | string | 要解除鎖定的session token | |
| session_valid | string | recaptcha驗證後生成的token | |
| platform | UnlockSessionTokenPayload.Platform | 目標裝置 |
GeneralCommandError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 |
UnlockSessionTokenPayload.Platform
| Name | Number | Description |
|---|---|---|
| WEB | 0 | |
| IOS | 1 | |
| ANDROID | 2 |
GeneralCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| UnlockSessionToken | UnlockSessionTokenPayload | UnlockSessionTokenAnswer | 解除session token的鎖定狀態(需要先完成recaptcha驗證) |
pan/account/v1/jpass/jpass_upgrader_command.proto
FinishUpgradeAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| phone_id | string | 生成或綁定的phone_id | |
| object_id | string | 生成或綁定的object_id | |
| uid | int64 | 生成或綁定的uid |
FinishUpgradePayload
| Field | Type | Label | Description |
|---|---|---|---|
| jpass_upgrade_token | string | 必填。jpass升級token | |
| pan_access_token | string | 選填。當user選擇「已有JKF帳號才需要」。 | |
| object_id | string | 選填。member的object_id,當user選擇「已有JKF帳號才需要」。 |
JpassUpgraderCommandError
JpassUpgraderCommandError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| JPassTokenInvalid | 2001 | jpass domain相關token無效 |
| MemberInvalid | 2002 | member存在,但並非可操作對象 |
| MemberDuplicated | 2003 | member關聯重複 |
JpassUpgraderCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| FinishUpgrade | FinishUpgradePayload | FinishUpgradeAnswer | 接收由pan-direct-api.CreateJpassUpgradeToken創建的jut,加上用戶登入後收到的pan access token,完成jpass升級流程 |
pan/account/v1/platform/platform.proto
App
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| display_name | string | ||
| icon | string | ||
| cover | string |
ApplicationListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| record_all | ApplicationListAnswer.Record | repeated |
ApplicationListAnswer.Record
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | 平台id | |
| app_display_name | string | 平台名稱 | |
| uid | int64 | 用戶uid | |
| registered_date | google.protobuf.Timestamp | 註冊時間 |
ApplicationListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
Error
PlatformOffAppAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| app_all | App | repeated |
PlatformOffAppAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
PlatformOnAppAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| app_all | App | repeated |
PlatformOnAppAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
PlatformQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| OnAppAll | PlatformOnAppAllPayload | PlatformOnAppAllAnswer | |
| OffAppAll | PlatformOffAppAllPayload | PlatformOffAppAllAnswer | |
| ApplicationList | ApplicationListPayload | ApplicationListAnswer | 查詢自己有被授權使用的所有平台列表 |
pan/account/v1/security/loginlog.proto
LoginDevice
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| member_id | string | ||
| app_id | string | ||
| ip_address | string | ||
| user_agent | string | ||
| expire | google.protobuf.Timestamp | ||
| modified | google.protobuf.Timestamp | ||
| nation | string | ||
| city | string |
LoginLogCommandError
LoginLogDeviceSomeAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| device_all | LoginDevice | repeated |
LoginLogDeviceSomePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
LogoutAllDeviceAnswer
LogoutAllDevicePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 移除該access_token之member的所有登入紀錄 | |
| check_only | bool | 若為true則檢查工作是否in progress,若是則拋錯 |
LoginLogCommandError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| InProgress | 2001 | 刪除作業執行中 |
LoginLogCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| LogoutAllDevice | LogoutAllDevicePayload | LogoutAllDeviceAnswer | 登出該帳號所有裝置 |
LoginLogQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| DeviceSome | LoginLogDeviceSomePayload | LoginLogDeviceSomeAnswer |
pan/account/v1/security/onetimecode.proto
OneTimeCodeCommand
rpc SetEmail(SetEmailPayload) returns (SetEmailStatus);
| Method Name | Request Type | Response Type | Description |
|---|
pan/account/v1/subscription/subscription.proto
AvailablePlanAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| plans | Plan | repeated |
AvailablePlanAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
Plan
| Field | Type | Label | Description |
|---|---|---|---|
| app_name | string | 產品名稱 | |
| plan_name | string | 方案名稱 | |
| plan_desc | string | 方案描述 | |
| plan_icon_url | string | 方案icon的URL | |
| plan_site_url | string | 產品端對應該方案的網址 | |
| has_subscribed | bool | 該帳號是否已訂閱此方案 | |
| subscribed_at | google.protobuf.Timestamp | 訂閱時間 |
ServiceItem
| Field | Type | Label | Description |
|---|---|---|---|
| id | string | ||
| display_name | string | ||
| icon | string | ||
| cover | string |
SubscriptionOffServiceItemAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| service_item_all | ServiceItem | repeated |
SubscriptionOffServiceItemAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
SubscriptionOnServiceItemAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| service_item_all | ServiceItem | repeated |
SubscriptionOnServiceItemAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
SubscriptionQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| OnServiceItemAll | SubscriptionOnServiceItemAllPayload | SubscriptionOnServiceItemAllAnswer | |
| OffServiceItemAll | SubscriptionOffServiceItemAllPayload | SubscriptionOffServiceItemAllAnswer | |
| AvailablePlanAll | AvailablePlanAllPayload | AvailablePlanAllAnswer | 產品端訂閱方案一覽 |
pan/account/v2/base/base.proto
Page
| Field | Type | Label | Description |
|---|---|---|---|
| size | int32 | 單頁資料筆數 | |
| number | int32 | 第幾頁 | |
| total_count | int64 | 資料總計筆數 |
pan/account/v2/base/error.proto
Error
MemberQueryError
Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| PanAccessTokenInvalid | 1201 | |
| PinnedFriendOverLimit | 1202 | |
| AchievementNotFound | 1203 |
MemberQueryError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| UidInvalid | 1301 |
pan/account/v2/base/friend.proto
Friend
Friend.Reply
Friend.Reply.Status
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Accept | 1 | |
| Reject | 2 |
pan/account/v2/base/member.proto
MemberBaseInfo
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| uid | int64 | ||
| huid | string | hashed uid | |
| username | string | 用戶名 | |
| display_name | string | 暱稱 | |
| avatar | string | 大頭貼路徑 | |
| string | optional | 綁定信箱 | |
| is_activated | bool | 是否已被啟用 | |
| jpass_id | string | aka jkf_id, phone_id | |
| is_main | bool | 是否為主帳號 | |
| can_new_child | bool | 是否可以新增子帳號 | |
| is_email_verified | bool | ||
| last_used_at | google.protobuf.Timestamp | 最後登入時間 | |
| created_at | google.protobuf.Timestamp | 創建時間 | |
| modified_at | google.protobuf.Timestamp | 最後修改時間 | |
| connected_apps | string | repeated | 有關聯的平台; app_id array |
pan/account/v2/base/meta.proto
Achievement
Achievement consists of Type(Title), Label(Achievement), Relation(J_TAGGED_AS)
| Field | Type | Label | Description |
|---|---|---|---|
| issuer_jpass_id | string | 稱號發行者 | |
| issued_at | google.protobuf.Timestamp | 稱號發行時間 | |
| qualifications | Qualification | repeated | 稱號資格條件 |
| type | Achievement.Type.Value | 稱號類型 | |
| label | string | 稱號名稱 | |
| part_level | Achievement.PartLevel.Value | 稱號等級 | |
| series | Series | 系列資料 |
Achievement.PartLevel
Achievement.Type
DisplayTitle
| Field | Type | Label | Description |
|---|---|---|---|
| data | Achievement | 稱號資料 | |
| qualified | Qualified | 使用者獲得稱號的原因 |
DisplayTitleArray
| Field | Type | Label | Description |
|---|---|---|---|
| titles | DisplayTitle | repeated |
Qualification
| Field | Type | Label | Description |
|---|---|---|---|
| qualification_id | string | ||
| app_id | string | ||
| app_display_name | string | ||
| reason | string |
Qualified
| Field | Type | Label | Description |
|---|---|---|---|
| qualification_id | string | ||
| attained_at | google.protobuf.Timestamp | ||
| revoked_at | google.protobuf.Timestamp |
Series
| Field | Type | Label | Description |
|---|---|---|---|
| series_id | string | ||
| series_display_name | string |
Achievement.PartLevel.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Red | 1 | |
| White | 2 | |
| Gold | 3 | |
| Rainbow | 4 |
Achievement.Type.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| FirstPart | 1 | |
| SecondPart | 2 |
pan/account/v2/base/user.proto
User
User.Type
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| General | 1 | |
| Business | 2 | |
| Official | 3 | |
| Superstar | 4 | JvidModel, Lady, Actress |
pan/account/v2/friend/command.proto
BlockAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| results | Result | repeated | |
| all_success | bool | 全部操作皆成功 |
BlockPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_hashed_uids | string | repeated | 要封鎖的好友pan hashed uid |
ConfirmAllInvitationAnswer
ConfirmAllInvitationPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 同意該access_token之member的所有好友邀請 | |
| check_only | bool | 若為true則檢查工作是否in progress,若是則拋錯 |
FriendCommandError
HideAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| results | Result | repeated | |
| all_success | bool | 全部操作皆成功 |
HidePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_hashed_uids | string | repeated | 要隱藏的好友pan hashed uid |
PinAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| results | Result | repeated | |
| all_success | bool | 全部操作皆成功 |
PinPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_hashed_uids | string | repeated | 要釘選的好友pan hashed uid |
Result
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | 操作對象的pan hashed uid | |
| success | bool | 操作結果是否成功 | |
| reason | string | 失敗理由。若success = true則reason為空 |
UnBlockAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| results | Result | repeated | |
| all_success | bool | 全部操作皆成功 |
UnBlockPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_hashed_uids | string | repeated | 要解除封鎖的好友pan hashed uid |
UnHideAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| results | Result | repeated | |
| all_success | bool | 全部操作皆成功 |
UnHidePayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_hashed_uids | string | repeated | 要解除隱藏的好友pan hashed uid |
UnPinAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| results | Result | repeated | |
| all_success | bool | 全部操作皆成功 |
UnPinPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_hashed_uids | string | repeated | 要解除釘選的好友pan hashed uid |
FriendCommandError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| InProgress | 2001 | 作業執行中 |
FriendCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Pin | PinPayload | PinAnswer | 釘選好友 累計不可超過20個釘選,會同時解除hide |
| UnPin | UnPinPayload | UnPinAnswer | 解除釘選好友 單次操作最多20筆 |
| Block | BlockPayload | BlockAnswer | 封鎖好友 單次操作最多20筆,會同時解除pin並且hide |
| UnBlock | UnBlockPayload | UnBlockAnswer | 解除封鎖好友 單次操作最多20筆,會同時解除hide |
| Hide | HidePayload | HideAnswer | 隱藏好友 單次操作最多20筆,會解除pin |
| UnHide | UnHidePayload | UnHideAnswer | 解除隱藏好友 單次操作最多20筆 |
| ConfirmAllInvitation | ConfirmAllInvitationPayload | ConfirmAllInvitationAnswer | 同意所有好友邀請 |
pan/account/v2/friend/query.proto
BlockedListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| friends | Friend | repeated | |
| page | pan.account.v2.base.Page |
BlockedListAnswer.Record
有效欄位的參考,實際使用Friend
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| display_name | string | ||
| avatar | string | ||
| user_type | pan.account.v2.base.User.Type | repeated | |
| is_pinned | bool |
BlockedListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| page | pan.account.v2.base.Page | page和size不可小於1 |
Friend
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | pan的hashed uid | |
| uid | int64 | pan的uid | |
| display_name | string | pan的display name | |
| avatar | string | pan的大頭貼url | |
| type | pan.account.v2.base.User.Type | repeated | 該用戶擁有的身份 |
| is_friend | bool | 和查詢者是好友 | |
| is_pinned | bool | 被查詢者釘選 | |
| is_blocked | bool | 被查詢者封鎖 | |
| is_hidden | bool | 被查詢者隱藏 |
FriendCountAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| count | int64 |
FriendCountPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
FriendListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| uid_match_friend | Friend | payload中page number是1且search是uid才會有值 | |
| friends | Friend | repeated | |
| page | pan.account.v2.base.Page |
FriendListAnswer.Record
有效欄位的參考,實際使用Friend
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| uid | int64 | ||
| display_name | string | ||
| avatar | string | ||
| type | pan.account.v2.base.User.Type | repeated | |
| is_friend | bool | ||
| is_pinned | bool | ||
| is_blocked | bool | ||
| is_hidden | bool |
FriendListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| page | pan.account.v2.base.Page | page和size不可小於1 | |
| search | string | 部分比對display_name。如果page = 1,會同時作為uid來完全比對,uid查詢結果為uid_match_friend | |
| start_after_huid | string | 若不為空則優先於page | |
| end_before_huid | string | 分頁用,start_after_huid和end_before_huid不可同時存在 |
FriendStatusAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| relation_pair | FriendStatusAnswer.Relation | repeated | ex: from_huid = 123, to_huid = 456, status = WaitingReply -> 123已發出好友邀請給456 ex: from_huid = 123, to_huid = 456, status = Rejected -> 123發出好友邀請給456,但已被456拒絕 |
FriendStatusAnswer.Relation
| Field | Type | Label | Description |
|---|---|---|---|
| from_huid | string | 狀態發起方 (action的主詞) | |
| to_huid | string | 狀態接受方 (action的受詞) | |
| status | FriendStatusAnswer.FriendStatus | 好友狀態 (action) |
FriendStatusPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| target_hashed_uid | string | 查詢對象的pan hashed uid |
HiddenListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| friends | Friend | repeated | |
| page | pan.account.v2.base.Page |
HiddenListAnswer.Record
有效欄位的參考,實際使用Friend
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| display_name | string | ||
| avatar | string | ||
| user_type | pan.account.v2.base.User.Type | repeated |
HiddenListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| page | pan.account.v2.base.Page | page和size不可小於1 |
JkTalkUserInfosAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| friends | Friend | repeated |
JkTalkUserInfosAnswer.Record
有效欄位的參考,實際使用Friend
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| display_name | string | ||
| avatar | string | ||
| type | pan.account.v2.base.User.Type | repeated | |
| is_friend | bool | ||
| is_pinned | bool | ||
| is_blocked | bool | ||
| is_hidden | bool |
JkTalkUserInfosPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| hashed_uids | string | repeated | 上限100,如果為空則是查自己 |
FriendStatusAnswer.FriendStatus
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| WaitingReply | 2 | 已發出邀請,等待回覆中 |
| Rejected | 3 | 發出的邀請已被拒絕 |
| IsFriend | 4 | 是好友 |
FriendQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| FriendList | FriendListPayload | FriendListAnswer | 查詢好友列表 有釘選的先置頂。被釘選的好友中,官方帳號會置頂。其餘非釘選帳號中,官方帳號也會置頂。 |
| BlockedList | BlockedListPayload | BlockedListAnswer | 查詢已封鎖用戶列表 |
| HiddenList | HiddenListPayload | HiddenListAnswer | 查詢已隱藏好友列表 |
| JkTalkUserInfos | JkTalkUserInfosPayload | JkTalkUserInfosAnswer | 查詢指定用戶的「好友狀態」和「身份」 |
查是否為好友 (放pan-account) | | FriendStatus | FriendStatusPayload | FriendStatusAnswer | 查詢與指定用戶的「雙向好友狀態」
查單人 (放pan-account) | | FriendCount | FriendCountPayload | FriendCountAnswer | |
pan/account/v2/member/query.proto
DisplayTitlesAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| title_map | DisplayTitlesAnswer.TitleMapEntry | repeated | 該用戶擁有的稱號, int64: uid |
DisplayTitlesAnswer.TitleMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | int64 | ||
| value | pan.account.v2.base.DisplayTitleArray |
DisplayTitlesPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 品牌發行者 | |
| uids | int64 | repeated | 查詢 uid 是否持有稱號 |
| app_id | string | pan application id |
IssuedTitlesAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| title_map | IssuedTitlesAnswer.TitleMapEntry | repeated | 該用戶擁有的稱號, int64: uid |
IssuedTitlesAnswer.TitleMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | int64 | ||
| value | pan.account.v2.base.DisplayTitleArray |
IssuedTitlesPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 品牌發行者 | |
| series_id | string | 系列 ID | |
| uids | int64 | repeated | 查詢 uid 是否持有稱號 |
JkcMemberAuthTokenAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| short_lived_auth_token | string |
JkcMemberAuthTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | pan application id | |
| pan_access_token | string | ||
| target_object_id | string | 切換帳號的 pan.members.object_id |
JkcMemberListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| member_list | pan.account.v2.base.MemberBaseInfo | repeated | JKC 專屬特規子帳號列表 |
JkcMemberListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | pan application id | |
| pan_access_token | string |
MyTitlesAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| first_part | pan.account.v2.base.DisplayTitle | 該用戶目前配戴中的頭銜-形容詞 | |
| second_part | pan.account.v2.base.DisplayTitle | 該用戶目前配戴中的頭銜-名詞 |
MyTitlesPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | 頭銜配戴者 |
MemberQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| DisplayTitles | DisplayTitlesPayload | DisplayTitlesAnswer | 查詢指定 uid 持有的稱號 |
| IssuedTitles | IssuedTitlesPayload | IssuedTitlesAnswer | 查詢指定系列和指定 uid 持有的發行稱號 |
| MyTitles | MyTitlesPayload | MyTitlesAnswer | 查詢帳號本身擁有的頭銜且設定為配戴狀態 |
| JkcMemberAuthToken | JkcMemberAuthTokenPayload | JkcMemberAuthTokenAnswer | JKC 專屬特規切換帳號 |
| JkcMemberList | JkcMemberListPayload | JkcMemberListAnswer | JKC 專屬特規查詢子帳號列表 |
pan/auth/v1/base.proto
Auth
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | optional | |
| pan_refresh_token | string | optional | |
| pan_auth_token | string | optional | |
| pan_app_token | string | optional | |
| pkce_code_challenge | string | optional | |
| pkce_code_verifier | string | optional |
pan/direct/account/query.proto
BoundMemberAllAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| main_member | pan.atom.member.Object | ||
| other_member_all | pan.atom.member.Object | repeated |
BoundMemberAllAnswer.Error
BoundMemberAllPayload
| Field | Type | Label | Description |
|---|---|---|---|
| member_id | pan.account.v1.member.Identity |
BoundMemberAllAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| UserIdRequired | 1001 | |
| Failed | 1002 |
Query
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| BoundMemberAll | BoundMemberAllPayload | BoundMemberAllAnswer |
pan/direct/account/v1/jpass_upgrader/command.proto
CreateJPassUpgradeTokenAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| jpass_upgrade_token | string | error : InvalidArgument -> 必填參數為空 Unauthenticated -> app_code無效,或無該平台資料 PermissionDenied -> 該平台無權限執行此操作 Internal -> 內部錯誤,創建token失敗 |
CreateJPassUpgradeTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_app_code | string | 必填。 | |
| app_member_id | string | 必填。jvid的場合,會是jvid的uid。 | |
| app_member_phone | string | 必填。 | |
| app_member_email | string | 選填,用戶信箱。 | |
| app_member_name | string | 必填。jvid的場合,會是channel name。 |
JpassUpgraderCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CreateJPassUpgradeToken | CreateJPassUpgradeTokenPayload | CreateJPassUpgradeTokenAnswer | 創建jut token,用於將產品端帳號升級為jpass帳號 |
pan/direct/application/v1/base.proto
Application
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| display_name | string |
ApplicationMember
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| app_member_id | string | ||
| pan_member_id | pan.account.v1.member.Identity | ||
| last_used_at | google.protobuf.Timestamp | ||
| created_at | google.protobuf.Timestamp |
pan/direct/application/v1/error.proto
BaseError
ListMemberByPanError
ListMemberByPanError.SomeMemberNotFoundDetail
| Field | Type | Label | Description |
|---|---|---|---|
| code | ListMemberByPanError.SomeMemberNotFoundDetail.Code | ||
| member_id | string |
BaseError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
ListMemberByPanError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| SomeMemberNotFound | 2001 |
ListMemberByPanError.SomeMemberNotFoundDetail.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| UuidNotFound | 2001 | |
| UidNotFound | 2002 | |
| UnknownId | 2003 |
pan/direct/application/v1/query_member.proto
ListMemberByPanAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| results | ListMemberByPanAnswer.ResultsEntry | repeated | key: pan_member_id |
ListMemberByPanAnswer.Result
| Field | Type | Label | Description |
|---|---|---|---|
| app_members | ListMemberByPanAnswer.Result.AppMembersEntry | repeated | key: app_id One pan member can have one app member in each app |
ListMemberByPanAnswer.Result.AppMembersEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | ApplicationMember |
ListMemberByPanAnswer.ResultsEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | ListMemberByPanAnswer.Result |
ListMemberByPanPayload
| Field | Type | Label | Description |
|---|---|---|---|
| auth | pan.auth.v1.Auth | ||
| pan_member_ids | pan.account.v1.member.Identity | repeated |
MemberQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| ListMemberByPan | ListMemberByPanPayload | ListMemberByPanAnswer |
pan/direct/base/v1/base.proto
Error
Error.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| ReachedMessageLimit | 1201 | |
| FailedToPublishEvent | 1202 | |
| MemberNotFound | 1203 | |
| AppTokenInvalid | 1204 | |
| IdentifiedDisplayNameDuplicated | 1205 | |
| MemberAlreadyIdentified | 1206 | |
| UsernameDuplicated | 1207 | |
| EmailDuplicated | 1208 | |
| PhoneNumberInvalid | 1209 | |
| MemberNotIdentified | 1210 |
pan/direct/friend/command.proto
CreateRelationshipPayload
| Field | Type | Label | Description |
|---|---|---|---|
| requester | pan.account.v1.member.Identity | 發出邀請方 | |
| target | pan.account.v1.member.Identity | 收到邀請方。talk domain related: target若為官方帳號,會發送歡迎訊息。target收到的「成為好友」小黑黑會強制為靜音模式。 | |
| relation_type | Relation.Type |
CreateRelationshipStatus
DeleteRelationshipPayload
| Field | Type | Label | Description |
|---|---|---|---|
| requester | pan.account.v1.member.Identity | ||
| target | pan.account.v1.member.Identity | ||
| relation_type | Relation.Type |
DeleteRelationshipStatus
Relation
CreateRelationshipStatus.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1 |
DeleteRelationshipStatus.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1 |
Relation.Type
| Name | Number | Description |
|---|---|---|
| Type__None | 0 | |
| Type__Friend | 1 | |
| Type__ClosedFriend | 2 | |
| Type__Family | 3 | |
| Type__Colleague | 4 | |
| Type__Classmate | 5 | |
| Type__Nodding | 6 | |
| Type__Stranger | 7 | |
| Type__Other | 8 |
Command
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CreateRelationship | CreateRelationshipPayload | CreateRelationshipStatus | |
| DeleteRelationship | DeleteRelationshipPayload | DeleteRelationshipStatus |
pan/direct/friend/query.proto
FriendPlQuery
FriendPlQuery.Answer
| Field | Type | Label | Description |
|---|---|---|---|
| pager | Pager | ||
| member_pl | pan.account.v1.member.Identity | repeated |
FriendPlQuery.Error
FriendPlQuery.Payload
| Field | Type | Label | Description |
|---|---|---|---|
| member | pan.account.v1.member.Identity | ||
| pager | Pager |
FriendPlStream
FriendPlStream.Error
FriendPlStream.Payload
| Field | Type | Label | Description |
|---|---|---|---|
| member | pan.account.v1.member.Identity | ||
| limit | int64 |
Pager
| Field | Type | Label | Description |
|---|---|---|---|
| page_current | int64 | ||
| page_total | int64 | ||
| page_size | int64 | ||
| item_total | int64 |
RelationBetweenAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| are_friend | bool | ||
| are_black | bool |
RelationBetweenAnswer.Error
RelationBetweenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| counterpart_a | pan.account.v1.member.Identity | ||
| counterpart_b | pan.account.v1.member.Identity |
RelationShipPayload
| Field | Type | Label | Description |
|---|---|---|---|
| requestor | pan.account.v1.member.Identity | ||
| respondentId | pan.account.v1.member.Identity |
FriendPlQuery.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
FriendPlStream.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
RelationBetweenAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
Query
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| FriendStream | FriendPlStream.Payload | .pan.account.v1.member.Identity stream | |
| RelationBetween | RelationBetweenPayload | RelationBetweenAnswer | a b之間的關係 |
| RelationShip | RelationShipPayload | RelationBetweenAnswer | a->b的關係 |
| FriendPl | FriendPlQuery.Payload | FriendPlQuery.Answer |
pan/direct/friend/v2/base.proto
Error
Page
| Field | Type | Label | Description |
|---|---|---|---|
| size | int32 | 單頁資料筆數 | |
| number | int32 | 第幾頁 | |
| total_count | int64 | 資料總計筆數 |
User
Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| MemberNotFound | 2001 |
User.Type
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| General | 1 | |
| Business | 2 | |
| Official | 3 | |
| Superstar | 4 | JvidModel, Lady, Actress |
pan/direct/friend/v2/command.proto
BlockMemberAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| successIds | string | repeated | |
| saga_id | string |
BlockMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | ||
| target_ids | string | repeated |
UnBlockMemberAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| successIds | string | repeated | |
| saga_id | string |
UnBlockMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | ||
| target_ids | string | repeated |
Command
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| BlockMember | BlockMemberPayload | BlockMemberAnswer | |
| UnBlockMember | UnBlockMemberPayload | UnBlockMemberAnswer |
pan/direct/friend/v2/query.proto
BlockedListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| friends | Friend | repeated | |
| page | Page |
BlockedListAnswer.Record
有效欄位的參考,實際使用Friend
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| display_name | string | ||
| avatar | string | ||
| user_types | User.Type | repeated |
BlockedListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| page | Page |
CheckMultiBlackStatusAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| multi_status | CheckMultiBlackStatusAnswer.Status | repeated |
CheckMultiBlackStatusAnswer.Status
| Field | Type | Label | Description |
|---|---|---|---|
| from_huid | string | ||
| to_huid | string | ||
| black | bool |
CheckMultiBlackStatusPayload
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| target_hashed_uids | string | repeated |
Friend
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| display_name | string | ||
| avatar | string | ||
| type | User.Type | repeated | |
| is_friend | bool | ||
| is_blocked | bool | ||
| member_identified | bool |
SearchFriendStatusAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| friends | Friend | repeated |
SearchFriendStatusAnswer.Record
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| display_name | string | ||
| avatar | string | ||
| type | User.Type | repeated | |
| is_friend | bool | ||
| is_pinned | bool | ||
| is_blocked | bool | ||
| is_hidden | bool |
SearchFriendStatusPayload
| Field | Type | Label | Description |
|---|---|---|---|
| from_id | string | ||
| to_ids | string | repeated | |
| check_self_only | bool |
SearchPairsStatusAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| pairs | SearchPairsStatusAnswer.Pair | repeated |
SearchPairsStatusAnswer.Pair
| Field | Type | Label | Description |
|---|---|---|---|
| from | SearchPairsStatusAnswer.UserInfo | ||
| to | SearchPairsStatusAnswer.UserInfo |
SearchPairsStatusAnswer.UserInfo
| Field | Type | Label | Description |
|---|---|---|---|
| hashed_uid | string | ||
| display_name | string | ||
| avatar | string | ||
| type | User.Type | repeated | |
| is_friend | bool | ||
| is_blocked | bool |
SearchPairsStatusPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pair_ids | SearchPairsStatusPayload.PairId | repeated |
SearchPairsStatusPayload.PairId
| Field | Type | Label | Description |
|---|---|---|---|
| from_hashed_uid | string | ||
| to_hashed_uid | string |
Query
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CheckMultiBlackStatus | CheckMultiBlackStatusPayload | CheckMultiBlackStatusAnswer | |
| SearchFriendStatus | SearchFriendStatusPayload | SearchFriendStatusAnswer | |
| BlockedList | BlockedListPayload | BlockedListAnswer | |
| SearchPairsStatus | SearchPairsStatusPayload | SearchPairsStatusAnswer |
pan/direct/guardian/role.proto
ExchangeForVerifyLcPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string | ||
| string | |||
| expected_role_all | string | repeated |
ExchangeForVerifyLcStatus
| Field | Type | Label | Description |
|---|---|---|---|
| exchange_token | ExchangeTokenForLc |
ExchangeForVerifyVendorPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string | ||
| pan_access_token | string | ||
| expected_role_all | string | repeated |
ExchangeForVerifyVendorStatus
| Field | Type | Label | Description |
|---|---|---|---|
| exchange_token | ExchangeToken |
ExchangeToken
| Field | Type | Label | Description |
|---|---|---|---|
| value | string |
ExchangeTokenForLc
| Field | Type | Label | Description |
|---|---|---|---|
| value | string |
ExchangeTokenForLcPayload
| Field | Type | Label | Description |
|---|---|---|---|
| string | |||
| expected_role_all | string | repeated | |
| track_id | string | ||
| app_id | string |
ExchangeTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string | ||
| expected_role_all | string | repeated | |
| track_id | string | ||
| app_id | string |
LcRole
| Field | Type | Label | Description |
|---|---|---|---|
| role_id | int64 | ||
| name | string |
VendorRole
| Field | Type | Label | Description |
|---|---|---|---|
| role_id | int64 | ||
| name | string |
VerifyLcPayload
| Field | Type | Label | Description |
|---|---|---|---|
| exchange_token | ExchangeTokenForLc |
VerifyLcStatus
| Field | Type | Label | Description |
|---|---|---|---|
| role_all | string | repeated |
VerifyVendorPayload
| Field | Type | Label | Description |
|---|---|---|---|
| exchange_token | ExchangeToken |
VerifyVendorStatus
| Field | Type | Label | Description |
|---|---|---|---|
| role_all | string | repeated |
ExchangeForVerifyLcStatus.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 | |
| Error__TokenInvalid | 1002 | |
| Error__EmailInvalid | 1003 |
ExchangeForVerifyVendorStatus.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 | |
| Error__TokenInvalid | 1002 |
VerifyLcStatus.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 | |
| Error__NotExpectedRole | 1002 | |
| Error__InvalidToken | 1003 |
VerifyVendorStatus.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 | |
| Error__NotExpectedVendor | 1002 | |
| Error__InvalidToken | 1003 |
Role
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| VerifyVendor | VerifyVendorPayload | VerifyVendorStatus | |
| VerifyLc | VerifyLcPayload | VerifyLcStatus |
Token
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| ExchangeForVerifyVendor | ExchangeForVerifyVendorPayload | ExchangeForVerifyVendorStatus | |
| ExchangeForVerifyLc | ExchangeForVerifyLcPayload | ExchangeForVerifyLcStatus |
pan/direct/meta/v1/tag.proto
AvPlus
AvPlus.RelationField
RelationField
| Field | Type | Label | Description |
|---|---|---|---|
| name | string | ||
| int64 | int64 | ||
| str | string | ||
| bool | bool | ||
| string_array | StringArray |
StringArray
| Field | Type | Label | Description |
|---|---|---|---|
| values | string | repeated |
Tag
| Field | Type | Label | Description |
|---|---|---|---|
| label | Tag.Label.Value | ||
| relation | Tag.Relation.Value | ||
| relation_type | Tag.Type.Value | ||
| field_map | Tag.FieldMapEntry | repeated | |
| label_field_map | Tag.LabelFieldMapEntry | repeated |
Tag.FieldMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | RelationField |
Tag.Label
Tag.LabelFieldMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | RelationField |
Tag.Relation
Tag.Type
TagPl
| Field | Type | Label | Description |
|---|---|---|---|
| tag_pl | Tag | repeated |
AvPlus.RelationField.Value
| Name | Number | Description |
|---|---|---|
| Name | 0 | |
| ActressId | 1 |
Tag.Label.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| FaceLady | 1 | |
| FaceCompany | 2 | |
| FaceSubscription_Monthly_Small | 3 | |
| FaceSubscription_Monthly | 4 | |
| FaceOfficial | 5 | |
| AvPlusVip | 6 | |
| AvPlusOfficial | 7 | |
| Jr24hVip | 8 | |
| Jr24hOfficial | 9 | |
| JkfPlatinumVip | 10 | |
| ForumOfficial | 11 | |
| KeyOpinionLeader | 12 | |
| AvPlusIdol | 13 | |
| TankOfficial | 14 | |
| Achievement | 15 |
Tag.Relation.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| J_TAGGED_AS | 1 | for Entertainer, Official, others... |
| J_FAMOUS_AS | 2 | 論壇名人 |
Tag.Type.Value
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Company | 1 | |
| Official | 2 | 彩色盾牌出現 |
| Title | 3 | |
| Subscription | 4 | |
| Entertainer | 5 | 藍勾勾出現 |
pan/direct/member/cmd.proto
CmdAddMemberToPhoneReq
| Field | Type | Label | Description |
|---|---|---|---|
| phone_number | string | ||
| display_name | string | ||
| password | string |
CmdAddMemberToPhoneRes
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| uid | int64 | ||
| phone_id | string |
CmdCreateAddressReq
| Field | Type | Label | Description |
|---|---|---|---|
| pan_id | pan.atom.member.Identity | ||
| address | pan.atom.member.AddressBook |
CmdCreateAddressRes
CmdCreateMemberWithVirtualPhoneReq
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string | ||
| display_name | string | ||
| tag_pl | pan.direct.meta.v1.Tag | repeated | |
| password | string | ||
| is_auto_emoji_for_duplicate | bool | ||
| username | string |
CmdCreateMemberWithVirtualPhoneRes
| Field | Type | Label | Description |
|---|---|---|---|
| phone_id | string | ||
| object_id | string | ||
| uid | int64 |
CmdDelAddressReq
| Field | Type | Label | Description |
|---|---|---|---|
| pan_id | pan.atom.member.Identity | ||
| address_id | int64 |
CmdDelAddressRes
CmdGenerateAuthTokenReq
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| login_token | string | ||
| token_duration | google.protobuf.Duration | optional | 可選,默認為 10 年後 |
| app_id | string | optional |
CmdGenerateAuthTokenRes
| Field | Type | Label | Description |
|---|---|---|---|
| auth_token | string |
CmdMakePanAccessTokenReq
| Field | Type | Label | Description |
|---|---|---|---|
| member_identity | pan.atom.member.Identity |
CmdMakePanAccessTokenRes
| Field | Type | Label | Description |
|---|---|---|---|
| pan_access_token | string |
CmdRegisterPhoneWithMemberReq
| Field | Type | Label | Description |
|---|---|---|---|
| phone_number | string | ||
| display_name | string | ||
| app_id | string |
CmdRegisterPhoneWithMemberRes
| Field | Type | Label | Description |
|---|---|---|---|
| object_id | string | ||
| uid | int64 | ||
| phone_id | string |
CmdUpdateMemberHistoryReq
| Field | Type | Label | Description |
|---|---|---|---|
| pan_id | pan.atom.member.Identity | ||
| history | pan.atom.member.History |
CmdUpdateMemberHistoryRes
CmdUpdateMemberIndividualReq
| Field | Type | Label | Description |
|---|---|---|---|
| pan_id | pan.atom.member.Identity | ||
| individual | pan.atom.member.Individual |
CmdUpdateMemberIndividualRes
CmdUpdatePasswordReq
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| password | string |
CmdUpdatePasswordRes
CmdUpdatePhoneReq
| Field | Type | Label | Description |
|---|---|---|---|
| phone_id | string | ||
| phone_number | string |
CmdUpdatePhoneRes
CmdAddMemberToPhoneRes.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
CmdCreateMemberWithVirtualPhoneRes.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
CmdMakePanAccessTokenRes.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
CmdRegisterPhoneWithMemberRes.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
CmdUpdatePasswordRes.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
CmdUpdatePhoneRes.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
Cmd
pan member 修改資料的操作方法
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| RegisterPhoneWithMember | CmdRegisterPhoneWithMemberReq | CmdRegisterPhoneWithMemberRes | |
| AddMemberToPhone | CmdAddMemberToPhoneReq | CmdAddMemberToPhoneRes | |
| UpdateMemberHistory | CmdUpdateMemberHistoryReq | CmdUpdateMemberHistoryRes | |
| UpdateMemberIndividual | CmdUpdateMemberIndividualReq | CmdUpdateMemberIndividualRes | |
| CreateAddress | CmdCreateAddressReq | CmdCreateAddressRes | |
| DelAddress | CmdDelAddressReq | CmdDelAddressRes | |
| UpdatePhone | CmdUpdatePhoneReq | CmdUpdatePhoneRes | |
| MakePanAccessToken | CmdMakePanAccessTokenReq | CmdMakePanAccessTokenRes | |
| CreateMemberWithVirtualPhone | CmdCreateMemberWithVirtualPhoneReq | CmdCreateMemberWithVirtualPhoneRes | |
| UpdatePassword | CmdUpdatePasswordReq | CmdUpdatePasswordRes | |
| GenerateAuthToken | CmdGenerateAuthTokenReq | CmdGenerateAuthTokenRes |
pan/direct/member/query.proto
MemberDetailSelectedMetaAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| object_pl | pan.atom.member.Object | repeated | |
| history_map | MemberDetailSelectedMetaAnswer.HistoryMapEntry | repeated | |
| individual_map | MemberDetailSelectedMetaAnswer.IndividualMapEntry | repeated | |
| virtual_address_all_map | MemberDetailSelectedMetaAnswer.VirtualAddressAllMapEntry | repeated | |
| tag_map | MemberDetailSelectedMetaAnswer.TagMapEntry | repeated |
MemberDetailSelectedMetaAnswer.Error
MemberDetailSelectedMetaAnswer.HistoryMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.History |
MemberDetailSelectedMetaAnswer.IdError
| Field | Type | Label | Description |
|---|---|---|---|
| code | MemberDetailSelectedMetaAnswer.IdError.Code | ||
| uid | int64 | ||
| object_id | string | ||
| huid | string |
MemberDetailSelectedMetaAnswer.IndividualMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.Individual |
MemberDetailSelectedMetaAnswer.TagMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.direct.meta.v1.TagPl |
MemberDetailSelectedMetaAnswer.VirtualAddressAllMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.AddressBookAll |
MemberDetailSelectedMetaPayload
| Field | Type | Label | Description |
|---|---|---|---|
| member_pl | pan.account.v1.member.Identity | repeated | |
| tag_pl | pan.direct.meta.v1.Tag | repeated |
MemberDetailWithMetaAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| object_pl | pan.atom.member.Object | repeated | |
| history_map | MemberDetailWithMetaAnswer.HistoryMapEntry | repeated | |
| individual_map | MemberDetailWithMetaAnswer.IndividualMapEntry | repeated | |
| virtual_address_all_map | MemberDetailWithMetaAnswer.VirtualAddressAllMapEntry | repeated | |
| tag_map | MemberDetailWithMetaAnswer.TagMapEntry | repeated |
MemberDetailWithMetaAnswer.Error
MemberDetailWithMetaAnswer.HistoryMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.History |
MemberDetailWithMetaAnswer.IdError
| Field | Type | Label | Description |
|---|---|---|---|
| code | MemberDetailWithMetaAnswer.IdError.Code | ||
| uid | int64 | ||
| object_id | string | ||
| huid | string |
MemberDetailWithMetaAnswer.IndividualMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.Individual |
MemberDetailWithMetaAnswer.TagMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.direct.meta.v1.TagPl |
MemberDetailWithMetaAnswer.VirtualAddressAllMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.AddressBookAll |
MemberDetailWithMetaPayload
| Field | Type | Label | Description |
|---|---|---|---|
| member_pl | pan.account.v1.member.Identity | repeated | |
| tag_pl | pan.direct.meta.v1.Tag | repeated |
PhoneQuery
PhoneQuery.Answer
| Field | Type | Label | Description |
|---|---|---|---|
| phone | string |
PhoneQuery.Payload
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string | ||
| member | pan.account.v1.member.Identity | ||
| reason | string |
QueryAvatarUploaderReq
| Field | Type | Label | Description |
|---|---|---|---|
| image_type | QueryAvatarUploaderReq.ImageType | ||
| object_id | string |
QueryAvatarUploaderRes
| Field | Type | Label | Description |
|---|---|---|---|
| signed_post_policy | QueryAvatarUploaderRes.SignedPostPolicyEntry | repeated | |
| url_to_upload | string | ||
| display_image_path | string |
QueryAvatarUploaderRes.SignedPostPolicyEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
QueryMemberDetailRequest
| Field | Type | Label | Description |
|---|---|---|---|
| uid_all | int64 | repeated | |
| object_id_all | string | repeated | |
| huid_all | string | repeated | hash-uid |
QueryMemberDetailResponse
| Field | Type | Label | Description |
|---|---|---|---|
| object_all | pan.atom.member.Object | repeated | |
| history_map | QueryMemberDetailResponse.HistoryMapEntry | repeated | |
| individual_map | QueryMemberDetailResponse.IndividualMapEntry | repeated | |
| virtual_address_all_map | QueryMemberDetailResponse.VirtualAddressAllMapEntry | repeated |
QueryMemberDetailResponse.Error
QueryMemberDetailResponse.HistoryMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.History |
QueryMemberDetailResponse.IdError
| Field | Type | Label | Description |
|---|---|---|---|
| code | QueryMemberDetailResponse.IdError.Code | ||
| uid | int64 | ||
| object_id | string | ||
| huid | string |
QueryMemberDetailResponse.IndividualMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.Individual |
QueryMemberDetailResponse.VirtualAddressAllMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | pan.atom.member.AddressBookAll |
MemberDetailSelectedMetaAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| IdRequired | 1001 | |
| IdFailed | 1002 | |
| Failed | 1003 |
MemberDetailSelectedMetaAnswer.IdError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| DecodeHashFailed | 1004 | NotFound = 1003; |
| Failed | 1005 |
MemberDetailWithMetaAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| IdRequired | 1001 | |
| IdFailed | 1002 | |
| Failed | 1003 |
MemberDetailWithMetaAnswer.IdError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| DecodeHashFailed | 1004 | NotFound = 1003; |
| Failed | 1005 |
QueryAvatarUploaderReq.ImageType
| Name | Number | Description |
|---|---|---|
| ImageType__None | 0 | |
| ImageType__Jpeg | 1 |
QueryAvatarUploaderRes.Error
| Name | Number | Description |
|---|---|---|
| Error__None | 0 | |
| Error__Failed | 1001 |
QueryMemberDetailResponse.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| IdRequired | 1001 | |
| IdFailed | 1002 | |
| Failed | 1003 |
QueryMemberDetailResponse.IdError.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| DecodeHashFailed | 1004 | NotFound = 1003; |
| Failed | 1005 |
Query
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| AvatarUploader | QueryAvatarUploaderReq | QueryAvatarUploaderRes | |
| MemberDetail | QueryMemberDetailRequest | QueryMemberDetailResponse | |
| Phone | PhoneQuery.Payload | PhoneQuery.Answer | |
| MemberDetailWithMeta | MemberDetailWithMetaPayload | MemberDetailWithMetaAnswer | |
| MemberDetailSelectedMeta | MemberDetailSelectedMetaPayload | MemberDetailSelectedMetaAnswer |
pan/direct/member/v2/command.proto
AvatarUploaderAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| signed_post_policy | AvatarUploaderAnswer.SignedPostPolicyEntry | repeated | |
| url_to_upload | string | ||
| display_image_path | string |
AvatarUploaderAnswer.SignedPostPolicyEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | string |
AvatarUploaderPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_token | string | ||
| uid | int64 | ||
| image_type | Image.FileType | 要上傳的圖檔格式 |
CreateGraphMemberAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| saga_id | string |
CreateGraphMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| hashed_uid | string | ||
| object_id | string | ||
| display_name | string |
DisidentifyMemberAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| saga_id | string |
DisidentifyMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_token | string | ||
| uid | int64 |
IdentifyMemberAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| object_id | string | ||
| phone_id | string | ||
| saga_id | string |
IdentifyMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_token | string | ||
| uid | int64 | optional,要指定為認證帳號的uid,若空則新建帳號 | |
| username | string | optional, 若無指定uid、或指定的uid為論壇舊會員需補齊pan資料,則需提供 | |
| display_name | string | required,若和其他認證帳號重複則報錯 | |
| phone | string | optional,若有提供則自動設定為已驗證手機,若重複則報錯。若有指定uid且資料已齊全、則不會寫入 | |
| string | optional, 若有提供則自動設定為已驗證信箱,若重複則報錯。若有指定uid且資料已齊全、則不會寫入 | ||
| password | string | optional,若為補齊資料或新建帳號且無提供phone,會自動創建為虛擬帳號,需要密碼登入 | |
| client_ip | string | required |
Image
Image.FileType
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Jpeg | 1 | |
| Png | 2 | |
| Gif | 3 | |
| Bmp | 4 |
Command
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CreateGraphMember | CreateGraphMemberPayload | CreateGraphMemberAnswer | |
| IdentifyMember | IdentifyMemberPayload | IdentifyMemberAnswer | |
| AvatarUploader | AvatarUploaderPayload | AvatarUploaderAnswer | |
| DisidentifyMember | DisidentifyMemberPayload | DisidentifyMemberAnswer |
pan/direct/member/v2/query.proto
FindMemberListAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| members | FindMemberListAnswer.Member | repeated | |
| total_count | int64 |
FindMemberListAnswer.Member
| Field | Type | Label | Description |
|---|---|---|---|
| uid | int64 | ||
| object_id | string | ||
| phone_id | string | ||
| username | string | ||
| display_name | string | ||
| string | |||
| phone_numbers | string | repeated |
FindMemberListPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_token | string | ||
| uid | int64 | ||
| phone | string | ||
| username | string | ||
| display_name | string | ||
| string | |||
| start_after_uid | int64 | 給當前頁最後一筆,則回傳下一頁 | |
| end_before_uid | int64 | 給當前頁第一筆,則回傳上一頁 | |
| page_size | int64 | 每頁筆數 |
Query
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| FindMemberList | FindMemberListPayload | FindMemberListAnswer |
pan/direct/message/v1/sms_command.proto
SendMessageAnswer
error -> Internal | InvalidArgument | Error_FailedToPublishEvent | Error_ReachedMessageLimit
SendMessagePayload
| Field | Type | Label | Description |
|---|---|---|---|
| phone | string | 要發送的電話號碼 | |
| message | string | 要發送的訊息 | |
| caller_project | string | Pub/Sub event使用的caller標示。ex: "JKF-pan-account-api-AddPhone" |
SendVerifyCodeAnswer
error -> Internal | InvalidArgument | Error_FailedToPublishEvent | Error_ReachedMessageLimit
SendVerifyCodePayload
| Field | Type | Label | Description |
|---|---|---|---|
| phone | string | 要發送的電話號碼 | |
| sms_code | string | 要發送的驗證碼 | |
| domain | string | 調用domain,用於log。ex: "jkforum.net" | |
| ip | string | 發出請求處的IP,用於log。 | |
| caller_project | string | Pub/Sub event使用的caller標示。ex: "JKF-pan-account-api-AddPhone" |
SmsCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| SendMessage | SendMessagePayload | SendMessageAnswer | 發送簡訊 如果電話號碼沒有+號prefix,會自動加上 會根據國碼分類限制24小時內可允許的總發送量 |
| SendVerifyCode | SendVerifyCodePayload | SendVerifyCodeAnswer | 發送簡訊驗證碼 如果電話號碼沒有+號prefix,會自動加上 會根據國碼分類限制24小時內可允許的總發送量 會有GCP log紀錄簡訊發送資訊(電話號碼、OTP code、domain、IP、caller) |
pan/direct/meta/v1/subscription.proto
Subscription
| Field | Type | Label | Description |
|---|---|---|---|
| jkf | Subscription.JKF | ||
| jkFace | Subscription.JKFace | ||
| avPlus | Subscription.AVPlus |
Subscription.AVPlus
| Name | Number | Description |
|---|---|---|
| AVPlus_Not_Set | 0 | |
| AVPlus_Vip | 1 |
Subscription.JKF
| Name | Number | Description |
|---|---|---|
| JKF_Not_Set | 0 | |
| JKF_Vip | 1 |
Subscription.JKFace
| Name | Number | Description |
|---|---|---|
| JKFace_Not_Set | 0 | |
| JKFace_Monthly_Card_Small | 1 | |
| JKFace_Monthly_Card | 2 |
pan/direct/meta/v1/subscriptioncommmand.proto
AddSubscriptionAnswer
AddSubscriptionAnswer.Error
AddSubscriptionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| subsription | Subscription | ||
| member_pl | pan.account.v1.member.Identity | repeated |
MemberSubscriptionInfo
| Field | Type | Label | Description |
|---|---|---|---|
| member | pan.account.v1.member.Identity | ||
| due_time | google.protobuf.Timestamp |
RemoveSubscriptionAnswer
RemoveSubscriptionAnswer.Error
RemoveSubscriptionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| subsription | Subscription | ||
| member_pl | pan.account.v1.member.Identity | repeated |
UpdateSubscriptionAnswer
UpdateSubscriptionAnswer.Error
UpdateSubscriptionPayload
| Field | Type | Label | Description |
|---|---|---|---|
| subscription | Subscription | ||
| member_infos | MemberSubscriptionInfo | repeated |
AddSubscriptionAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
RemoveSubscriptionAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
UpdateSubscriptionAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
SubscriptionCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| AddSubscription | AddSubscriptionPayload | AddSubscriptionAnswer | |
| UpdateSubscription | UpdateSubscriptionPayload | UpdateSubscriptionAnswer | |
| RemoveSubscription | RemoveSubscriptionPayload | RemoveSubscriptionAnswer |
pan/direct/meta/v1/tagcommand.proto
RemoveTagOfMemberPlAnswer
RemoveTagOfMemberPlAnswer.Error
RemoveTagOfMemberPlPayload
| Field | Type | Label | Description |
|---|---|---|---|
| tag_pl | Tag | repeated | |
| member_pl | pan.account.v1.member.Identity | repeated |
TagAddMemberAnswer
TagAddMemberAnswer.Error
TagAddMemberPayload
| Field | Type | Label | Description |
|---|---|---|---|
| relation | Tag.Relation.Value | ||
| label | Tag.Label.Value | ||
| type | Tag.Type.Value | ||
| member_pl | pan.account.v1.member.Identity | repeated | |
| field_map | TagAddMemberPayload.FieldMapEntry | repeated | |
| label_field_map | TagAddMemberPayload.LabelFieldMapEntry | repeated |
TagAddMemberPayload.FieldMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | RelationField |
TagAddMemberPayload.LabelFieldMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | RelationField |
RemoveTagOfMemberPlAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
TagAddMemberAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
TagCommand
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| AddMember | TagAddMemberPayload | TagAddMemberAnswer | |
| RemoveTagOfMemberPl | RemoveTagOfMemberPlPayload | RemoveTagOfMemberPlAnswer |
pan/direct/meta/v1/tagquery.proto
MemberTagInfoPlAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| tag_map | MemberTagInfoPlAnswer.TagMapEntry | repeated |
MemberTagInfoPlAnswer.Error
MemberTagInfoPlAnswer.TagMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | TagPl |
MemberTagInfoPlPayload
| Field | Type | Label | Description |
|---|---|---|---|
| member_pl | pan.account.v1.member.Identity | repeated | |
| include_field_map | bool | include_field_map 為 true 時, 才會回傳 tag.field_map & tag.label_field_map |
MemberTagInfoPlWithFilterAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| tag_map | MemberTagInfoPlWithFilterAnswer.TagMapEntry | repeated |
MemberTagInfoPlWithFilterAnswer.Error
MemberTagInfoPlWithFilterAnswer.TagMapEntry
| Field | Type | Label | Description |
|---|---|---|---|
| key | string | ||
| value | TagPl |
MemberTagInfoPlWithFilterPayload
| Field | Type | Label | Description |
|---|---|---|---|
| member_pl | pan.account.v1.member.Identity | repeated | |
| tag_pl | Tag | repeated |
TagMemberPlAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| member_pl | pan.account.v1.member.Identity | repeated |
TagMemberPlAnswer.Error
TagMemberPlPayload
| Field | Type | Label | Description |
|---|---|---|---|
| relation | Tag.Relation.Value | ||
| label | Tag.Label.Value | ||
| type | Tag.Type.Value |
MemberTagInfoPlAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
MemberTagInfoPlWithFilterAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
TagMemberPlAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
TagQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| MemberPl | TagMemberPlPayload | TagMemberPlAnswer | |
| MemberTagInfoPl | MemberTagInfoPlPayload | MemberTagInfoPlAnswer | |
| MemberTagInfoPlWithFilter | MemberTagInfoPlWithFilterPayload | MemberTagInfoPlWithFilterAnswer |
pan/direct/revert/command.proto
Error
RevertAnswer
RevertPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_token | string | The app token for authentication | |
| saga_id | string | The saga ID to revert |
Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| ReversionPartiallyFailed | 2001 |
Command
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Revert | RevertPayload | RevertAnswer |
pan/direct/secure/v1/apikey.proto
GetByAppAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| public_key | bytes |
GetByAppPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_id | string | ||
| kid | string |
ApiKeyQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GetByApp | GetByAppPayload | GetByAppAnswer |
pan/direct/secure/v1/appcode.proto
ValidateAppCodeAnswer
ValidateAppCodeAnswer.Error
ValidateAppCodePayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string |
ValidateAppCodeAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
Enforcer
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| ValidateAppCode | ValidateAppCodePayload | ValidateAppCodeAnswer |
pan/direct/secure/v1/jwe.proto
GetDecryptedDataAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| plain_data | string |
GetDecryptedDataAnswer.Error
GetDecryptedDataPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string | ||
| encrypted_data | bytes |
GetEncryptedDataAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| encrypted_data | bytes |
GetEncryptedDataAnswer.Error
GetEncryptedDataPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string | ||
| plain_data | string |
GetDecryptedDataAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
GetEncryptedDataAnswer.Error.Code
| Name | Number | Description |
|---|---|---|
| None | 0 | |
| Failed | 1001 |
JsonWebEncryptionQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GetEncryptedData | GetEncryptedDataPayload | GetEncryptedDataAnswer | |
| GetDecryptedData | GetDecryptedDataPayload | GetDecryptedDataAnswer |
pan/direct/secure/v1/token.proto
ExchangeAuthTokenAnswer
| Field | Type | Label | Description |
|---|---|---|---|
| auth_token | string |
ExchangeAuthTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| app_code | string | ||
| uid | int64 |
ValidateLinkTokenAnswer
ValidateLinkTokenPayload
| Field | Type | Label | Description |
|---|---|---|---|
| link_token | string |
TokenQuery
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| ExchangeAuthToken | ExchangeAuthTokenPayload | ExchangeAuthTokenAnswer | |
| ValidateLinkToken | ValidateLinkTokenPayload | ValidateLinkTokenAnswer |