Partilhar via


Faça sua primeira chamada de API para acessar dados de análise do mercado comercial

Para obter uma lista das APIs para acessar dados de análise do mercado comercial, consulte APIs para acessar dados de análise do mercado comercial. Antes de fazer sua primeira chamada de API, verifique se você atendeu aos pré-requisitos para acessar programaticamente os dados de análise do mercado comercial.

Geração de tokens

Antes de chamar qualquer um dos métodos, você deve primeiro obter um token de acesso do Microsoft Entra. Você precisa passar o token de acesso do Microsoft Entra para o cabeçalho Authorization de cada método na API. Depois de obter um token de acesso, você tem 60 minutos para usá-lo antes que ele expire. Depois que o token expirar, você poderá atualizá-lo e continuar a usá-lo para outras chamadas para a API.

Aviso

Resource='https://graph.microsoft.com' será preterido após 30 de agosto de 2024. Planeje a migração para Resource='https://api.partnercenter.microsoft.com' de acordo.

Consulte uma solicitação de exemplo abaixo para gerar um token. Os três valores necessários para gerar o token são clientId, clientSecrete tenantId. O resource parâmetro deve ser definido como https://api.partnercenter.microsoft.com.

Exemplo de solicitação:

curl --location --request POST 'https://login.microsoftonline.com/{TenantId}/oauth2/token' \
--header 'return-client-request-id: true' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'resource=https://api.partnercenter.microsoft.com' \
--data-urlencode 'client_id={client_id}' \
--data-urlencode 'client_secret={client_secret}' \
--data-urlencode 'grant_type=client_credentials'

Exemplo de resposta:

{
    "token_type": "Bearer",
    "expires_in": "3599",
    "ext_expires_in": "3599",
    "expires_on": "1612794445",
    "not_before": "1612790545",
    "resource": "https://api.partnercenter.microsoft.com",
    "access_token": {Token}
}

Para obter mais informações sobre como obter um token do Microsoft Entra para seu aplicativo, consulte Serviço para chamadas de serviço usando credenciais de cliente (segredo compartilhado ou certificado).

Chamada de API programática

Depois de obter o Microsoft Entra Token conforme descrito na seção anterior, siga estas etapas para criar seu primeiro relatório de acesso programático.

Os dados podem ser baixados dos seguintes conjuntos de dados (datasetName):

Nome do Relatório Nome do conjunto de dados na API
Ordenar ISVOrder
Utilização ISVUsage
Cliente ISVCustomer
Informações do Marketplace ISVMarketplaceInsights
Receita ISVRevenue
Retenção de clientes ISVOfferRetention
Qualidade de Serviço ISVQualityOfService
Licença ISVLicense
Versão da imagem da VM ISVVMImageVersion

As seções a seguir mostram exemplos de como acessar OrderId programaticamente a partir do conjunto de dados ISVOrder.

Etapa 1: Fazer uma chamada REST usando a API Get Datasets

A resposta da API fornece o nome do conjunto de dados de onde você pode baixar o relatório. Para o conjunto de dados específico, a resposta da API também fornece a lista de colunas selecionáveis que podem ser usadas para seu modelo de relatório personalizado.

Exemplo de solicitação:

curl 
--location 
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledDataset ' \ 
--header 'Authorization: Bearer <AzureADToken>'

Exemplo de resposta:

{
    "value": [
        {
            "datasetName": "ISVOrder",
            "selectableColumns": [
                "MarketplaceSubscriptionId",
                "MonthStartDate",
                "OfferType",
                "AzureLicenseType",
                "MarketplaceLicenseType",
                "SKU",
                "CustomerCountry",
                "IsPreviewSKU",
                "AssetId",
                "Quantity",
                "CloudInstanceName",
                "IsNewCustomer",
                "OrderStatus",
                "OrderCancelDate",
                "CustomerCompanyName",
                "OrderPurchaseDate",
                "OfferName",
                "IsPrivateOffer",
                "TermStartDate",
                "TermEndDate",
                "PurchaseRecordId",
                "PurchaseRecordLineItemId",
                "BilledRevenue",
                "Currency",
                "HasTrial",
                "IsTrial",
                "TrialEndDate",
                "OrderAction",
                "QuantityChanged",
                "EventTimestamp",
                "CustomerId",
                "BillingAccountId",
                "PlanId",
                "BillingTerm",
                "BillingPlan",
                "ReferenceId",
                "AutoRenew",
                "OrderVersion",
                "ListPriceUSD",
                "DiscountPriceUSD",
                "IsPrivatePlan",
                "OfferId",
                "PrivateOfferId",
                "PrivateOfferName",
                "BillingId",
                "Version",
                "CustomerAdjustmentUSD",
                "MultiParty",
                "PartnerInfo"
            ],
            "availableMetrics": [],
            "availableDateRanges": [
                "LAST_MONTH",
                "LAST_3_MONTHS",
                "LAST_6_MONTHS",
                "LAST_1_YEAR",
                "LIFETIME"
            ],
            "minimumRecurrenceInterval": 1
        },
    ],
    "totalCount": 1,
    "message": "Dataset fetched successfully",
    "statusCode": 200
}

Etapa 2: Criar a consulta personalizada

Nesta etapa, usaremos o ID do pedido do Relatório de pedidos para criar uma consulta personalizada para o relatório desejado. O padrão timespan , se não especificado na consulta, é de seis meses.

Exemplo de solicitação:

curl 
--location 
--request POST ' https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries' \ 
--header ' Authorization: Bearer <AzureAD_Token>' \ 
--header 'Content-Type: application/json' \ 
--data-raw 
            '{ 
                "Query": "SELECT OrderId from ISVOrder", 
                "Name": "ISVOrderQuery1", 
                "Description": "Get a list of all Order IDs" 
             }'

Exemplo de resposta:

{
    "value": [
        {
            "queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
            "name": "ISVOrderQuery1",
            "description": "Get a list of all Order IDs",
            "query": "SELECT OrderId from ISVOrder",
            "type": "userDefined",
            "user": "142344300",
            "createdTime": "2024-01-06T05:38:34",
            "modifiedTime": null
        }
    ],
    "totalCount": 1,
    "message": "Query created successfully",
    "statusCode": 200
}

Na execução bem-sucedida da consulta, é gerado um queryId que precisa ser usado para gerar o relatório.

Etapa 3: Executar a API de consulta de teste

Nesta etapa, usaremos a API de consulta de teste para obter as 100 principais linhas para a consulta que foi criada.

Exemplo de solicitação:

curl 
--location 
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries/testQueryResult?exportQuery=SELECT%20OrderId%20from%20ISVOrder' \ 
--header ' Authorization: Bearer <AzureADToken>'

Exemplo de resposta:

{
    "value": [
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2ba8"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bb8"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bc8"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bd8"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2be8"
        },
               .
               .
               .

        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bf0"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bf1"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bf2"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bf3"
        },
        {
            "OrderId": "086365c6-9c38-4fba-904a-6228f6cb2bf4"
        }
    ],
    "totalCount": 100,
    "message": null,
    "statusCode": 200
}

Etapa 4: Criar o relatório

Nesta etapa, usaremos o gerado QueryId anteriormente para criar o relatório.

Exemplo de solicitação:

curl 
--location 
--request POST 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport' \ 
--header ' Authorization: Bearer <AzureADToken>' \ 
--header 'Content-Type: application/json' \ 
--data-raw 
                 '{
                   "ReportName": "ISVReport1",
                   "Description": "Report for getting list of Order Ids",
                   "QueryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
                   "StartTime": "2024-01-06T19:00:00Z",
                   "RecurrenceInterval": 48,
                   "RecurrenceCount": 20,
                    "Format": "csv"
                  }'

Exemplo de resposta:

{
    "value": [
        {
            "reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
            "reportName": "ISVReport1",
            "description": "Report for getting list of Order Ids",
            "queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
            "query": "SELECT OrderId from ISVOrder",
            "user": "142344300",
            "createdTime": "2024-01-06T05:46:00Z",
            "modifiedTime": null,
            "startTime": "2024-01-06T19:00:00Z",
            "reportStatus": "Active",
            "recurrenceInterval": 48,
            "recurrenceCount": 20,
            "callbackUrl": null,
            "format": "csv"
        }
    ],
    "totalCount": 1,
    "message": "Report created successfully",
    "statusCode": 200
}

Na execução bem-sucedida, é gerado um reportId que precisa ser usado para agendar um download do relatório.

Etapa 5: Executar a API de Execuções de Relatório

Para obter o local seguro (URL) do relatório, agora executaremos a API de Execuções de Relatório.

Exemplo de solicitação:

Curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/72fa95ab-35f5-4d44-a1ee-503abbc88003' \
--header ' Authorization: Bearer <AzureADToken>' \

Exemplo de resposta:

{
    "value": [
        {
            "executionId": "1f18b53b-df30-4d98-85ee-e6c7e687aeed",
            "reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
            "recurrenceInterval": 48,
            "recurrenceCount": 20,
            "callbackUrl": null,
            "format": "csv",
            "executionStatus": "Pending",
            "reportAccessSecureLink": null,
            "reportExpiryTime": null,
            "reportGeneratedTime": null
        }
    ],
    "totalCount": 1,
    "message": null,
    "statusCode": 200
}

Você pode experimentar as APIs por meio da URL da API do Swagger.