Delen via


Uw eerste API-aanroep maken voor toegang tot analytische gegevens van commerciële marketplace

Zie API's voor toegang tot analysegegevens van commerciële marketplace voor een lijst met API's voor toegang tot analytische gegevens van commerciële marketplace. Voordat u de eerste API-aanroep maakt, moet u ervoor zorgen dat u aan de vereisten voldoet om programmatisch toegang te krijgen tot analytische gegevens van de commerciële marketplace.

Token genereren

Voordat u een van de methoden aanroept, moet u eerst een Microsoft Entra-toegangstoken verkrijgen. U moet het Microsoft Entra-toegangstoken doorgeven aan de autorisatieheader van elke methode in de API. Nadat u een toegangstoken hebt verkregen, hebt u 60 minuten om het te gebruiken voordat het verloopt. Nadat het token is verlopen, kunt u het token vernieuwen en het blijven gebruiken voor verdere aanroepen naar de API.

Waarschuwing

Resource='https://graph.microsoft.com' wordt na 30 augustus 2024 afgeschaft. Plan de migratie naar Resource='https://api.partnercenter.microsoft.com dienovereenkomstig.

Raadpleeg hieronder een voorbeeldaanvraag voor het genereren van een token. De drie waarden die nodig zijn om het token te genereren, zijn clientId, clientSecreten tenantId. De resource parameter moet worden ingesteld op https://api.partnercenter.microsoft.com.

Voorbeeld aanvragen:

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'

Voorbeeldrespons:

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

Zie Service to service-aanroepen met behulp van clientreferenties (gedeeld geheim of certificaat) voor meer informatie over het verkrijgen van een Microsoft Entra-token voor uw toepassing.

Programmatische API-aanroep

Nadat u het Microsoft Entra-token hebt verkregen zoals beschreven in de vorige sectie, volgt u deze stappen om uw eerste programmatische toegangsrapport te maken.

Gegevens kunnen worden gedownload uit de volgende gegevenssets (datasetName):

Rapportnaam Naam van gegevensset in API
Order ISVOrder
Gebruik ISVUsage
Customer ISVCustomer
Marketplace Insights ISVMarketplaceInsights
Omzet ISVRevenue
Klantretentie ISVOfferRetention
Quality of Service ISVQualityOfService
Licentie ISVLicense
Vm-installatiekopieënversie ISVVMImageVersion

In de volgende secties ziet u voorbeelden van hoe u programmatisch toegang kunt krijgen OrderId vanuit de ISVOrder-gegevensset.

Stap 1: Een REST-aanroep maken met behulp van de API Gegevenssets ophalen

Het API-antwoord bevat de naam van de gegevensset van waaruit u het rapport kunt downloaden. Voor de specifieke gegevensset bevat het API-antwoord ook de lijst met selecteerbare kolommen die kunnen worden gebruikt voor uw aangepaste rapportsjabloon.

Voorbeeld aanvragen:

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

Voorbeeldrespons:

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

Stap 2: De aangepaste query maken

In deze stap gebruiken we de order-id uit het rapport Orders om een aangepaste query te maken voor het gewenste rapport. De standaardwaarde timespan als deze niet is opgegeven in de query, is zes maanden.

Voorbeeld aanvragen:

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

Voorbeeldrespons:

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

Bij een geslaagde uitvoering van de query wordt een queryId gegenereerd dat moet worden gebruikt om het rapport te genereren.

Stap 3: Testquery-API uitvoeren

In deze stap gebruiken we de testquery-API om de bovenste 100 rijen op te halen voor de query die is gemaakt.

Voorbeeld aanvragen:

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

Voorbeeldrespons:

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

Stap 4: Het rapport maken

In deze stap gebruiken we het eerder gegenereerde QueryId rapport.

Voorbeeld aanvragen:

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

Voorbeeldrespons:

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

Bij een geslaagde uitvoering wordt een reportId gegenereerd dat moet worden gebruikt om een download van het rapport te plannen.

Stap 5: Api voor rapportuitvoeringen uitvoeren

Om de beveiligde locatie (URL) van het rapport op te halen, voeren we nu de API voor rapportuitvoeringen uit.

Voorbeeld aanvragen:

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

Voorbeeldrespons:

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

U kunt de API's uitproberen via de URL van de Swagger-API.