Obter clientes de um revendedor indiretoGet customers of an indirect reseller

Aplica-se aApplies To

  • Partner CenterPartner Center

Como obter uma lista dos clientes de um revendedor indireto.How to get a list of the customers of an indirect reseller.

Pré-requisitosPrerequisites

  • Credenciais, conforme descrito em Autenticação do Partner Center.Credentials as described in Partner Center authentication. Este cenário dá suporte somente à autenticação com credenciais de aplicativo + de usuário.This scenario supports authentication with App+User credentials only.

  • O identificador de locatário do revendedor indireto.The tenant identifier of the indirect reseller.

C#C#

Para obter uma coleção de clientes que têm uma relação com o revendedor indireto especificado, primeiro crie uma instância de um objeto SimpleFieldFilter para criar o filtro.To get a collection of customers that have a relationship with the specified indirect reseller, first instantiate a SimpleFieldFilter object to create the filter. Você precisará passar o membro de enumeração CustomerSearchField. IndirectReseller convertido em uma cadeia de caracteres e indicar FieldFilterOperation. StartsWith como o tipo de operação de filtro.You'll need to pass the CustomerSearchField.IndirectReseller enumeration member converted to a string, and indicate FieldFilterOperation.StartsWith as the type of filter operation. Você também precisará fornecer o identificador de locatário do revendedor indireto para filtrar por.You'll also need to provide the tenant identifier of the indirect reseller to filter by.

Em seguida, crie uma instância de um objeto iQuery para passar para a consulta chamando o método BuildSimpleQuery e passando-o para o filtro.Next, instantiate an iQuery object to pass to the query by calling the BuildSimpleQuery method and passing it the filter. BuildSimplyQuery é apenas um dos tipos de consulta com suporte na classe QueryFactory .BuildSimplyQuery is just one of the query types supported by the QueryFactory class.

Para executar o filtro e obter o resultado, primeiro use IAggregatePartner. Customers para obter uma interface para as operações do cliente do parceiro.To execute the filter and get the result, first use IAggregatePartner.Customers to get an interface to the partner's customer operations. Em seguida, chame a consulta ou o método QueryAsync .Then call the Query or QueryAsync method.

Para criar um enumerador para percorrer os resultados paginados, obtenha a interface de fábrica do enumerador de coleta do cliente da propriedade IAggregatePartner. Enumerations. Customers e, em seguida, chame Create, conforme mostrado no código a seguir, passando a variável que mantém a coleção de clientes.To create an enumerator for traversing paged results, get the customer collection enumerator factory interface from the IAggregatePartner.Enumerators.Customers property, and then call Create, as shown in the code below, passing the variable that holds the customer collection.

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();
}

Exemplo: Console test appprojetode aplicativo de teste de console: classede exemplos do SDK do Partner Center: GetCustomersOfIndirectReseller.csSample: Console test appProject: Partner Center SDK Samples Class: GetCustomersOfIndirectReseller.cs

Solicitação RESTREST request

Sintaxe da solicitaçãoRequest syntax

MétodoMethod URI da solicitaçãoRequest URI
GETGET {baseURL}/v1/Customers? tamanho = {tamanho}? filtro = {filtro} http/1.1{baseURL}/v1/customers?size={size}?filter={filter} HTTP/1.1

Parâmetro do URIURI parameter

Use os parâmetros de consulta a seguir para criar a solicitação.Use the following query parameters to create the request.

NomeName TipoType ObrigatórioRequired DescriçãoDescription
tamanhosize intint NãoNo O número de resultados a serem exibidos ao mesmo tempo.The number of results to be displayed at one time. Esse parâmetro é opcional.This parameter is optional.
filterfilter filterfilter SimYes A consulta que filtra a pesquisa.The query that filters the search. Para recuperar clientes para um revendedor especificado indireto, você deve inserir o identificador de revendedor indireto e incluir e codificar a seguinte cadeia de caracteres: {"Field": "IndirectReseller", "value": "{identificador de revendedor indireto}", "Operator": "começa _ com"}.To retrieve customers for a specified indirect reseller, you must insert the indirect reseller identifier and include and encode the following string: {"Field":"IndirectReseller","Value":"{indirect reseller identifier}","Operator":"starts_with"}.

Cabeçalhos de solicitaçãoRequest headers

Para obter mais informações, confira Cabeçalhos REST do Partner Center.For more information, see Partner Center REST headers.

Corpo da solicitaçãoRequest body

Nenhum.None.

Exemplo de solicitação (codificado)Request example (encoded)

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

Exemplo de solicitação (decodificado)Request example (decoded)

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

Resposta RESTREST response

Se for bem-sucedido, o corpo da resposta conterá informações sobre os clientes do revendedor.If successful, the response body contains information about the reseller's customers.

Códigos de êxito e de erro de respostaResponse success and error codes

Cada resposta vem com um código de status HTTP que indica êxito ou falha e informações de depuração adicionais.Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use uma ferramenta de rastreamento de rede para ler esse código, o tipo de erro e os parâmetros adicionais.Use a network trace tool to read this code, error type, and additional parameters. Para obter a lista completa, consulte códigos de erro do Partner Center.For the full list, see Partner Center error codes.

Exemplo de respostaResponse example

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"
    }
}