Method: accounts.list

แสดงรายการบัญชีที่ผู้ใช้ที่โทรเข้าถึงได้และตรงกับข้อจำกัดของคำขอ เช่น ขนาดหน้าหรือตัวกรอง ข้อมูลที่ได้ไม่ได้เป็นเพียงการแสดงบัญชีย่อยของ MCA เท่านั้น แต่ยังรวมถึงบัญชีทั้งหมดที่ผู้ใช้ที่โทรเข้าถึงด้วย ซึ่งรวมถึง MCA อื่นๆ, บัญชีที่ลิงก์, บัญชีแบบสแตนด์อโลน และอื่นๆ

คำขอ HTTP

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts

URL ใช้ไวยากรณ์การแปลง gRPC

พารามิเตอร์การค้นหา

พารามิเตอร์
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) ซึ่งเป็นการแสดงให้เห็นอย่างชัดเจนว่าคำสันธานจะเชื่อมโยงได้ดีกว่าการแบ่งแยกอย่างมีเหตุผล

เนื้อหาของคำขอ

เนื้อหาของคำขอต้องว่างเปล่า

เนื้อหาการตอบกลับ

ข้อความตอบกลับสำหรับเมธอด accounts.list

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
ช่อง
accounts[]

object (Account)

บัญชีที่ตรงกับ ListAccountsRequest

nextPageToken

string

โทเค็นซึ่งสามารถส่งเป็น pageToken เพื่อเรียกข้อมูลหน้าถัดไป หากเว้นช่องนี้ไว้ จะไม่มีหน้าลำดับต่อมา

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth ต่อไปนี้

  • https://www.googleapis.com/auth/content

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ภาพรวมของ OAuth 2.0