Obtener clientes de un revendedor indirecto

Se aplica a: Centro de partners

Cómo obtener una lista de los clientes de un revendedor indirecto.

Requisitos previos

  • Credenciales tal como se describen en el artículo Autenticación del Centro de partners. Este escenario admite la autenticación solo con credenciales de aplicación y usuario.

  • Identificador de inquilino del revendedor indirecto.

C#

Para obtener una colección de clientes que tienen una relación con el revendedor indirecto especificado, primero cree una instancia de un objeto SimpleFieldFilter para crear el filtro. Deberá pasar el miembro de enumeración CustomerSearchField.IndirectReseller convertido a una cadena e indicar FieldFilterOperation.StartsWith como el tipo de operación de filtro. También deberá proporcionar el identificador de inquilino del revendedor indirecto para filtrar por.

A continuación, cree una instancia de un objeto iQuery para pasar a la consulta mediante una llamada al método BuildSimpleQuery y páselo el filtro. BuildSimplyQuery es solo uno de los tipos de consulta admitidos por la clase QueryFactory.

Para ejecutar el filtro y obtener el resultado, use primero IAggregatePartner.Customers para obtener una interfaz para las operaciones del cliente del asociado. A continuación, llame al método Query o QueryAsync.

Para crear un enumerador para recorrer los resultados paginados, obtenga la interfaz de generador del enumerador de colecciones de clientes de la propiedad IAggregatePartner.Enumerators.Customers y, a continuación, llame a Create, como se muestra en el código siguiente, pasando la variable que contiene la colección de clientes.

IAggregatePartner partnerOperations;
string indirectResellerId;

// Create a filter.
var filter = new SimpleFieldFilter(
    CustomerSearchField.IndirectReseller.ToString(),
    FieldFilterOperation.StartsWith,
    indirectResellerId);

// Create an iQuery object to pass to the Query method.
var myQuery = QueryFactory.Instance.BuildSimpleQuery(filter);

// Get the collection of matching customers.
var customersPage = partnerOperations.Customers.Query(myQuery);

// Create a customer enumerator for traversing the customer pages.
var customersEnumerator = partnerOperations.Enumerators.Customers.Create(customersPage);
int pageNumber = 1;

while (customersEnumerator.HasValue)
{
    // Work with the current page.
     foreach (var c in customersEnumerator.Current.Items)
    {
        // Display customer tenant identifier and company name.
        Console.WriteLine(string.Format("{0} - {1}.",c.Id,c.CompanyProfile.CompanyName));
    }
    // Get the next page of customers.
    customersEnumerator.Next();
}

Ejemplo: Proyecto de aplicaciónde prueba de consola: Clase de ejemplos del SDK del Centro de partners: GetCustomersOfIndirectReseller.cs

Solicitud REST

Sintaxis de la solicitud

Método URI de solicitud
GET {baseURL}/v1/customers?size={size}?filter={filter} HTTP/1.1

Parámetro de URI

Use los parámetros de consulta siguientes para crear la solicitud.

Nombre Type Obligatorio Descripción
size int No El número de resultados que se van a mostrar al mismo tiempo. Este parámetro es opcional.
filter filter Consulta que filtra la búsqueda. Para recuperar clientes para un revendedor indirecto especificado, debe insertar el identificador de revendedor indirecto e incluir y codificar la siguiente cadena: {"Field":"IndirectReseller","Value":"{indirect reseller identifier}","Operator":"starts_with"}.

Encabezados de solicitud

Para obtener más información, consulta Encabezados REST del Centro de partners.

Cuerpo de la solicitud

Ninguno.

Ejemplo de solicitud (codificado)

GET https://api.partnercenter.microsoft.com/v1/customers?size=0&filter=%7B%22Field%22%3A%22IndirectReseller%22%2C%22Value%22%3A%22484e548c-f5f3-4528-93a9-c16c6373cb59%22%2C%22Operator%22%3A%22starts_with%22%7D HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: aa04fb9d-c6b6-4754-8a6a-86e00cdd5ccb
MS-CorrelationId: b4e67a78-0692-45d1-b408-04b9178a8ac6
X-Locale: en-US
Host: api.partnercenter.microsoft.com

Ejemplo de solicitud (descodificado)

GET https://api.partnercenter.microsoft.com/v1/customers?size=0&filter={"Field":"IndirectReseller","Value":"484e548c-f5f3-4528-93a9-c16c6373cb59","Operator":"starts_with"} HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: aa04fb9d-c6b6-4754-8a6a-86e00cdd5ccb
MS-CorrelationId: b4e67a78-0692-45d1-b408-04b9178a8ac6
X-Locale: en-US
Host: api.partnercenter.microsoft.com

Respuesta REST

Si se ejecuta correctamente, el cuerpo de la respuesta contiene información sobre los clientes del revendedor.

Códigos de error y de respuesta correctos

Cada respuesta incluye un código de estado HTTP que indica si la operación se ha realizado correctamente o con errores y proporciona información de depuración adicional. Use una herramienta de seguimiento de red para leer este código, el tipo de error y los parámetros adicionales. Para obtener la lista completa, consulte Códigos de error del Centro de partners.

Ejemplo de respuesta

HTTP/1.1 200 OK
Content-Length: 2273
Content-Type: application/json; charset=utf-8
MS-CorrelationId: b4e67a78-0692-45d1-b408-04b9178a8ac6
MS-RequestId: aa04fb9d-c6b6-4754-8a6a-86e00cdd5ccb
MS-CV: XI2/vIHmIEGVlGL9.0
MS-ServerId: 101112012
Date: Tue, 11 Apr 2017 23:31:28 GMT

{
    "totalCount": 2,
    "items": [{
            "id": "53eb21cb-6b2d-4ee5-9e92-27dfc927e93c",
            "companyProfile": {
                "tenantId": "53eb21cb-6b2d-4ee5-9e92-27dfc927e93c",
                "domain": "FourthCoffee137.onmicrosoft.com",
                "companyName": "FourthCoffee137",
                "links": {
                    "self": {
                        "uri": "/customers/53eb21cb-6b2d-4ee5-9e92-27dfc927e93c/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/53eb21cb-6b2d-4ee5-9e92-27dfc927e93c",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Customer"
            }
        }, {
            "id": "3dfe847b-cad9-4fc1-86d3-cf16c2790087",
            "companyProfile": {
                "tenantId": "3dfe847b-cad9-4fc1-86d3-cf16c2790087",
                "domain": "WingtipToys1254789149.onmicrosoft.com",
                "companyName": "Wingtip Toys1254789149",
                "links": {
                    "self": {
                        "uri": "/customers/3dfe847b-cad9-4fc1-86d3-cf16c2790087/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/3dfe847b-cad9-4fc1-86d3-cf16c2790087",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Customer"
            }
        },
    ],
    "attributes": {
        "objectType": "Collection"
    }
}