pageSize |
integer
ไม่บังคับ จำนวนบัญชีสูงสุดที่จะแสดง บริการอาจแสดงผลน้อยกว่าค่านี้ หากไม่ระบุ ระบบจะส่งคืนบัญชีไม่เกิน 250 บัญชี ค่าสูงสุดคือ 500 ค่าที่มากกว่า 500 จะถูกเปลี่ยนเป็น 500
|
pageToken |
string
ไม่บังคับ โทเค็นของหน้าเว็บที่ได้รับจากการโทร accounts.list ก่อนหน้า โปรดระบุข้อมูลนี้เพื่อเรียกข้อมูลหน้าถัดไป เมื่อใส่เลขหน้า พารามิเตอร์อื่นๆ ทั้งหมดที่ให้กับ accounts.list ต้องตรงกับการเรียกใช้ที่ระบุโทเค็นของหน้าเว็บ
|
filter |
string
ไม่บังคับ ตัวกรองที่ไม่บังคับเพื่อให้แสดงเฉพาะบัญชีที่ตรงกับตัวกรอง ตัวอย่างตัวกรองที่ใช้ได้มีดังนี้
accountName = "*store*" AND relationship(providerId = 123)
relationship(providerId = 123 AND
service(type = "ACCOUNT_AGGREGATION"))
(accountName = "storeA") OR (accountName = "storeB")
relationship(service(
handshakeState = "APPROVED" AND type = "ACCOUNT_MANAGEMENT"))
relationship(callerHasAccessToProvider()
AND externalAccountId = "extAcctId" AND accountIdAlias = "alias")
(relationship(service(type = "ACCOUNT_MANAGEMENT")
AND service(handshakeState = "PENDING")))
OR (accountName = "store" AND relationship(...))
ตัวกรองในระดับบัญชีจะมีความหมายดังต่อไปนี้
accountName หมายถึงช่อง accountName ของบัญชี
relationship(...) หมายถึงความสัมพันธ์ที่บัญชีมีอยู่ร่วมกับบัญชีอื่น สามารถระบุความสัมพันธ์นี้เพิ่มเติมภายในฟังก์ชันได้
ตัวกรองในระดับความสัมพันธ์จะมีความหมายดังนี้
providerId หมายถึงรหัสที่เป็นตัวเลขของบัญชีที่เป็นสมาชิกรายอื่นในความสัมพันธ์ ตัวอย่างเช่น หากตัวกรองควรจำกัดเฉพาะบัญชีที่มีความสัมพันธ์กับบัญชี accounts/name/123 ควรกรอง providerId เป็น providerId = 123
callerHasAccessToProvider() การดำเนินการนี้จะจำกัดบัญชีผลลัพธ์ไว้กับบัญชีที่มีความสัมพันธ์กับบัญชีอื่นซึ่งผู้ใช้ที่โทรมีสิทธิ์เข้าถึงสมาชิกรายอื่นในความสัมพันธ์ (หรือผู้ให้บริการ) ได้ด้วย
externalAccountId คือรหัสบัญชีภายนอกที่กำหนดค่าสำหรับความสัมพันธ์
accountIdAlias หมายถึงชื่อแทนรหัสบัญชีที่กำหนดค่าสำหรับความสัมพันธ์
service(...) หมายถึงบริการที่มีให้โดยเป็นส่วนหนึ่งของความสัมพันธ์ หมายเหตุ: ความสัมพันธ์ระหว่าง 2 บัญชีอาจประกอบด้วยบริการหลายอย่าง
ตัวกรองในระดับบริการมีความหมายต่อไปนี้
handshakeState หมายถึงสถานะแฮนด์เชคของบริการ เมื่อมีการให้บริการแล้ว บางครั้งสมาชิกของความสัมพันธ์นั้นต้องได้รับการอนุมัติจากสมาชิกรายอื่นหรือทั้งสองฝ่ายก่อน ดังนั้นบริการอาจอยู่ในสถานะ PENDING หรือ APPROVED
type ส่วนนี้หมายถึงประเภทของบริการ โดยค่าที่เป็นไปได้มีดังนี้
ACCOUNT_MANAGEMENT ผู้ให้บริการเป็นผู้จัดการบัญชี
ACCOUNT_AGGREGATION ผู้ให้บริการเป็นผู้รวบรวมข้อมูลบัญชี
ตัวกรองเป็นไปตามชุดย่อยของข้อกำหนดของตัวกรอง AIP และไวยากรณ์ EBNF อย่างเป็นทางการ ไวยากรณ์สำหรับตัวกรองนี้จะมีข้อจำกัดและเจาะจงมากกว่า
filter
: accountFilterDisj
| accountFilterConj
;
accountFilterDisj
: "(" accountFilterConj " OR " accountFilterConj ")"
;
accountFilterConj
: accountFilter {" AND " accountFilter}
;
accountFilter
: accountNameFilter | relationshipFn
;
accountNameFilter
: "accountName" comparator value
;
relationshipFn
: "relationship(" relationshipConj ")"
;
relationshipConj
: relationshipFilter {" AND " relationshipFilter}
;
relationshipFilter
: "providerId = " numValue
| "callerHasAccessToProvider()"
| "externalAccountId" comparator value
| "accountIdAlias" comparator value
| serviceFn
;
serviceFn
: "service(" serviceConj ")"
;
serviceConj
: serviceFilter {" AND " serviceFilter}
;
serviceFilter
: handshakeStateFilter
| typeFilter
;
handshakeStateFilter
: "handshakeState = " value
;
typeFilter
: "type = " value
;
comparator
: " = " | " != "
;
นอกจากนี้ยังมีเงื่อนไขเพิ่มเติมดังนี้
- ช่องแต่ละช่องในคำสันธานอาจปรากฏเพียงครั้งเดียว (เช่น สามารถกรอง
accountName ได้เพียงครั้งเดียวในระดับบัญชี หรือสามารถกรอง providerId ได้เพียงครั้งเดียวในแต่ละระดับความสัมพันธ์)
- สำหรับช่องสตริง (เช่น
accountName หรือ accountIdAlias ) คุณจะแสดงโอเปอเรเตอร์ CONTAINS ด้วยการล้อมรอบคำค้นหาใน * ได้ เช่น accountName = "*foo*" จะแสดงผลบัญชีทั้งหมดที่มี accountName ที่มี foo คุณสามารถเลือกที่จะแสดงโอเปอเรเตอร์ NOT_CONTAINS ได้โดยใช้ != เช่น accountName != "*foo*" จะแสดงผลบัญชีทั้งหมดที่มี accountName ที่ไม่มี foo หมายเหตุ: คุณสามารถค้นหาบัญชีที่มี accountName ซึ่งมีอักขระดาว * ได้โดยใช้ ***
- ระบบจะไม่สนใจช่องว่างเพิ่มเติม
- ค่าทั้งหมดยกเว้นค่าที่เป็นตัวเลขเท่านั้นจะต้องอยู่ในเครื่องหมายคำพูดคู่
- หากใช้การแยกส่วน คำสันธานในแต่ละด้านต้องใช้วงเล็บ แม้ว่าสันธานจะมีนิพจน์เดียวก็ตาม ไม่อนุญาตให้มีเครื่องหมายวงเล็บในที่อื่น ยกเว้นการเรียกฟังก์ชัน (เช่น
relationship หรือ service ) ซึ่งเป็นการแสดงให้เห็นอย่างชัดเจนว่าคำสันธานจะเชื่อมโยงได้ดีกว่าการแบ่งแยกอย่างมีเหตุผล
|