v0.0.143
pan-account-proto
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 專屬特規查詢子帳號列表 |