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
, clientSecret
en 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.