Method: accounts.list

Liệt kê những tài khoản mà người dùng gọi có thể truy cập và khớp với các điều kiện ràng buộc của yêu cầu, chẳng hạn như kích thước trang hoặc bộ lọc. Trang này không chỉ liệt kê các tài khoản phụ của một MCA, mà còn tất cả tài khoản mà người dùng gọi có quyền truy cập, bao gồm cả các MCA khác, tài khoản đã liên kết, tài khoản độc lập, v.v.

Yêu cầu HTTP

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

URL sử dụng cú pháp Chuyển mã gRPC.

Tham số truy vấn

Tham số
pageSize

integer

Không bắt buộc. Số lượng tài khoản tối đa cần trả về. Dịch vụ có thể trả về ít hơn giá trị này. Nếu bạn không xác định, hệ thống sẽ trả về tối đa 250 tài khoản. Giá trị lớn nhất là 500; các giá trị lớn hơn 500 sẽ bị buộc thành 500.

pageToken

string

Không bắt buộc. Mã thông báo trang, nhận được từ lệnh gọi accounts.list trước đó. Cung cấp mã này để truy xuất trang tiếp theo.

Khi phân trang, tất cả các tham số khác được cung cấp cho accounts.list phải khớp với lệnh gọi đã cung cấp mã thông báo trang.

filter

string

Không bắt buộc. Một bộ lọc không bắt buộc để chỉ trả về các tài khoản khớp với bộ lọc.

Dưới đây là một số ví dụ về bộ lọc hợp lệ:

  • 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(...))

Các bộ lọc ở cấp tài khoản có ngữ nghĩa sau:

  • accountName Trường này đề cập đến trường accountName của tài khoản.
  • relationship(...) Đây là mối quan hệ giữa tài khoản và một tài khoản khác. Trong hàm này, bạn có thể chỉ định thêm mối quan hệ này.

Các bộ lọc về cấp độ mối quan hệ có ngữ nghĩa sau:

  • providerId Đây là mã số của tài khoản là thành viên khác của mối quan hệ. Ví dụ: nếu bộ lọc phải giới hạn ở các tài khoản có mối quan hệ với tài khoản accounts/name/123 thì providerId sẽ được lọc là providerId = 123.
  • callerHasAccessToProvider() Điều này sẽ hạn chế tài khoản tạo ra thành các tài khoản có mối quan hệ với một tài khoản khác, trong đó người dùng gọi cũng có quyền truy cập vào thành viên khác của mối quan hệ (hoặc nhà cung cấp).
  • externalAccountId Mã này đề cập đến mã tài khoản bên ngoài được định cấu hình cho mối quan hệ.
  • accountIdAlias Đây là email đại diện của mã tài khoản được định cấu hình cho mối quan hệ.
  • service(...) Mục này đề cập đến một dịch vụ được cung cấp trong mối quan hệ. Lưu ý: Mối quan hệ giữa hai tài khoản có thể bao gồm nhiều dịch vụ.

Các bộ lọc ở cấp dịch vụ có ngữ nghĩa sau:

  • handshakeState Mục này đề cập đến trạng thái bắt tay của dịch vụ. Trong quá trình thiết lập một dịch vụ, đôi khi, trước tiên, dịch vụ cần phải được sự chấp thuận của các thành viên khác hoặc cả hai thành viên của mối quan hệ. Do đó, một dịch vụ có thể ở trạng thái PENDING hoặc APPROVED.
  • type Mục này cho biết loại dịch vụ. Các giá trị có thể sử dụng là:
    • ACCOUNT_MANAGEMENT Nhà cung cấp quản lý tài khoản.
    • ACCOUNT_AGGREGATION Nhà cung cấp là trang web tổng hợp của tài khoản.

Bộ lọc này tuân theo một phần nhỏ thông số kỹ thuật của bộ lọc AIPngữ pháp EBNF chính thức. Ngữ pháp cho bộ lọc này hạn chế và cụ thể hơn

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
    : " = " | " != "
    ;

Ngoài ra, các điều kiện sau đây áp dụng:

  • Mỗi trường liên kết có thể chỉ xuất hiện một lần (ví dụ: bạn chỉ có thể lọc trên accountName một lần ở cấp tài khoản hoặc chỉ có thể lọc cho providerId một lần ở mỗi cấp mối quan hệ).
  • Đối với các trường chuỗi (chẳng hạn như accountName hoặc accountIdAlias), bạn có thể biểu thị toán tử CONTAINS bằng cách đưa truy vấn vào *. Ví dụ: accountName = "*foo*" sẽ trả về mọi tài khoản có accountName chứa foo. Bạn có thể biểu thị toán tử NOT_CONTAINS theo cách trực giao bằng !=. Ví dụ: accountName != "*foo*" sẽ trả về tất cả tài khoản có accountName không chứa foo. Lưu ý: Bạn có thể tìm các tài khoản có accountName chứa ký tự dấu sao * bằng cách sử dụng ***.
  • Các khoảng trắng bổ sung sẽ bị bỏ qua.
  • Bạn phải đặt tất cả các giá trị trong dấu ngoặc kép (ngoại trừ các giá trị chỉ là số).
  • Nếu sử dụng dấu phân tách, liên từ ở mỗi bên phải sử dụng dấu ngoặc đơn ngay cả khi liên từ đó chỉ có một biểu thức duy nhất. Không được phép sử dụng dấu ngoặc đơn ở bất kỳ nơi nào khác ngoại trừ lệnh gọi hàm (chẳng hạn như relationship hoặc service). Điều này nhằm thể hiện rõ rằng liên từ liên kết mạnh hơn so với phân tách về mặt logic.

Nội dung yêu cầu

Nội dung yêu cầu phải trống.

Nội dung phản hồi

Thông báo phản hồi cho phương thức accounts.list.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
Trường
accounts[]

object (Account)

Các tài khoản khớp với ListAccountsRequest.

nextPageToken

string

Mã thông báo có thể được gửi dưới dạng pageToken để truy xuất trang tiếp theo. Nếu trường này bị bỏ qua thì sẽ không có trang tiếp theo.

Phạm vi uỷ quyền

Yêu cầu phạm vi OAuth sau:

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

Để biết thêm thông tin, hãy xem bài viết Tổng quan về OAuth 2.0.