Vytvoření prvního volání rozhraní API pro přístup k analytickým datům komerčního marketplace
Seznam rozhraní API pro přístup k analytickým datům komerčního marketplace najdete v tématu Rozhraní API pro přístup k analytickým datům komerčního marketplace. Před prvním voláním rozhraní API se ujistěte, že splňujete požadavky pro programový přístup k analytickým datům komerčního marketplace.
Generování tokenů
Před voláním některé z metod musíte nejprve získat přístupový token Microsoft Entra. Musíte předat přístupový token Microsoft Entra do autorizační hlavičky každé metody v rozhraní API. Po získání přístupového tokenu ho můžete použít 60 minut, než vyprší jeho platnost. Po vypršení platnosti tokenu můžete token aktualizovat a dál ho používat pro další volání rozhraní API.
Upozorňující
Resource='https://graph.microsoft.com' bude po 30. srpnu 2024 zastaralý. Naplánujte migraci na Resource='https://api.partnercenter.microsoft.com odpovídajícím způsobem.
Informace o vygenerování tokenu najdete níže v ukázkové žádosti. Tři hodnoty potřebné k vygenerování tokenu jsou clientId
, clientSecret
a tenantId
. Parametr resource
by měl být nastaven na https://api.partnercenter.microsoft.com
hodnotu .
Příklad požadavku:
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'
Příklad odpovědi:
{
"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}
}
Další informace o tom, jak získat token Microsoft Entra pro vaši aplikaci, naleznete v tématu Service to service calls using client credentials (shared secret or certificate).
Programové volání rozhraní API
Po získání tokenu Microsoft Entra, jak je popsáno v předchozí části, postupujte podle těchto kroků a vytvořte první programovou sestavu přístupu.
Data je možné stáhnout z následujících datových sad (datasetName):
Název sestavy | Název datové sady v rozhraní API |
---|---|
Objednávka | ISVOrder |
Využití | IsVUsage |
Zákazník | ISVCustomer |
Přehledy z Marketplace | ISVMarketplaceInsights |
Výnosy | ISVRevenue |
Uchovávání zákazníků | ISVOfferRetention |
Kvalita služby | ISVQualityOfService |
Licence | ISVLicense |
Verze image virtuálního počítače | ISVVMImageVersion |
Následující části ukazují příklady, jak programově přistupovat z OrderId
datové sady ISVOrder.
Krok 1: Volání REST pomocí rozhraní Get Datasets API
Odpověď rozhraní API poskytuje název datové sady, ze které si můžete sestavu stáhnout. Pro konkrétní datovou sadu poskytuje odpověď rozhraní API také seznam vybraných sloupců, které je možné použít pro vlastní šablonu sestavy.
Příklad požadavku:
curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledDataset ' \
--header 'Authorization: Bearer <AzureADToken>'
Příklad odpovědi:
{
"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
}
Krok 2: Vytvoření vlastního dotazu
V tomto kroku použijeme ID objednávky ze sestavy objednávek k vytvoření vlastního dotazu pro sestavu, kterou chceme. Výchozí hodnota timespan
, pokud není zadána v dotazu, je šest měsíců.
Příklad požadavku:
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"
}'
Příklad odpovědi:
{
"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
}
Při úspěšném spuštění dotazu se vygeneruje příkaz, queryId
který je potřeba použít k vygenerování sestavy.
Krok 3: Provedení rozhraní API testovacího dotazu
V tomto kroku použijeme rozhraní API testovacího dotazu k získání prvních 100 řádků pro vytvořený dotaz.
Příklad požadavku:
curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries/testQueryResult?exportQuery=SELECT%20OrderId%20from%20ISVOrder' \
--header ' Authorization: Bearer <AzureADToken>'
Příklad odpovědi:
{
"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
}
Krok 4: Vytvoření sestavy
V tomto kroku použijeme k vytvoření sestavy dříve vygenerované QueryId
sestavy.
Příklad požadavku:
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"
}'
Příklad odpovědi:
{
"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
}
Při úspěšném spuštění se vygeneruje příkaz reportId
, který je potřeba použít k naplánování stahování sestavy.
Krok 5: Spuštění rozhraní API pro spouštění sestav
Abychom získali zabezpečené umístění (URL) sestavy, spustíme teď rozhraní API pro spouštění sestav.
Příklad požadavku:
Curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/72fa95ab-35f5-4d44-a1ee-503abbc88003' \
--header ' Authorization: Bearer <AzureADToken>' \
Příklad odpovědi:
{
"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
}
Rozhraní API si můžete vyzkoušet prostřednictvím adresy URL rozhraní API Swaggeru.