Realización de la primera llamada API para acceder a los datos de análisis del marketplace comercial

Para obtener una lista de las API para acceder a datos de análisis del marketplace comercial, consulte API para acceder a datos de análisis del marketplace comercial. Antes de realizar la primera llamada API, asegúrese de cumplir los requisitos previos para acceder mediante programación a los datos de análisis del marketplace comercial.

Generación de token

Antes de llamar a cualquiera de los métodos, primero debe obtener un token de acceso de Microsoft Entra. Debe pasar el token de acceso de Microsoft Entra al encabezado authorization de cada método de la API. Tras obtener un token de acceso, tiene 60 minutos para usarlo antes de que expire. Una vez que expire el token, puede actualizarlo para poder seguir utilizándolo en llamadas futuras a la API.

Advertencia

Resource='https://graph.microsoft.com' quedará en desuso después del 30 de junio de 2024. Planee la migración a Resource='https://api.partnercenter.microsoft.com' en consecuencia.

Consulte la siguiente solicitud de ejemplo para generar un token. Los tres valores necesarios para generar el token son clientId, clientSecret y tenantId. El parámetro resource debe establecerse en https://api.partnercenter.microsoft.com.

Ejemplo de solicitud:

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'

Ejemplo de respuesta:

{
    "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 obtener más información sobre cómo obtener un token de Microsoft Entra para la aplicación, consulte Service to service calls using client credentials (shared secret or certificate).

Llamada API mediante programación

Después de obtener el token de Microsoft Entra como se describe en la sección anterior, siga estos pasos para crear el primer informe de acceso mediante programación.

Los datos se pueden descargar de los siguientes conjuntos de datos (datasetName):

Nombre del informe Nombre del conjunto de datos en la API
compra ISVOrder
Uso ISVUsage
Customer ISVCustomer
Conclusiones de Marketplace ISVMarketplaceInsights
Ingresos ISVRevenue
Retención de clientes ISVOfferRetention
Calidad de servicio ISVQualityOfService
Licencia ISVLicense
Versión de la imagen de máquina virtual ISVVMImageVersion

En las secciones siguientes se muestran ejemplos de cómo acceder OrderId mediante programación desde el conjunto de datos ISVOrder.

Paso 1: Realización de una llamada REST mediante la API Get Datasets

La respuesta de la API proporciona el nombre del conjunto de datos desde donde puede descargar el informe. Para el conjunto de datos específico, la respuesta de la API también proporciona la lista de columnas seleccionables que se pueden usar para la plantilla de informe personalizada.

Ejemplo de solicitud:

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

Ejemplo de respuesta:

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

Paso 2: Creación de la consulta personalizada

En este paso, usaremos el identificador de pedido del informe de pedidos para crear una consulta personalizada para el informe que queremos. El valor predeterminado de timespan si no se especifica en la consulta es de seis meses.

Ejemplo de solicitud:

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

Ejemplo de respuesta:

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

Cuando se ejecuta correctamente la consulta, se genera queryId, que debe usarse para generar el informe.

Paso 3: Ejecución de la API de consulta de prueba

En este paso, usaremos la API de consulta de prueba para obtener las 100 primeras filas de la consulta que se ha creado.

Ejemplo de solicitud:

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

Ejemplo de respuesta:

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

Paso 4: Creación de la asignación

En este paso, usaremos el parámetro QueryId generado anteriormente para crear el informe.

Ejemplo de solicitud:

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

Ejemplo de respuesta:

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

Cuando la ejecución es correcta, se genera reportId, que se debe utilizar para programar la descarga del informe.

Paso 5: Ejecución de la API de ejecución de informes

Para obtener la ubicación segura (URL) del informe, ahora ejecutaremos la API de ejecuciones de informes.

Ejemplo de solicitud:

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

Ejemplo de respuesta:

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

Pasos siguientes