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(...) מתייחס לשירות שניתן כחלק מהקשר. הערה: קשר בין שני חשבונות יכול לכלול מספר שירותים.

למסננים ברמת השירות יש את הסמנטיקה הבאה:

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