Method: accounts.list

يسرد الحسابات التي يمكن للمستخدم المتصل الوصول إليها مع مراعاة قيود الطلب مثل حجم الصفحة أو الفلاتر. لا يقتصر هذا الإجراء على إدراج الحسابات الفرعية لحساب متعدّد العملاء فحسب، بل يشمل جميع الحسابات التي يمكن للمستخدِم المتصل الوصول إليها، بما في ذلك الحسابات المتعدّدة العملاء (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.