Proveďte své první volání API pro přístup k analytickým datům komerčního tržiště
Seznam rozhraní API pro přístup k analytickým datům komerčního tržiště najdete v části rozhraní API pro přístup k analytickým datům komerčního tržiště. 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.
Varování
Resource='https://graph.microsoft.com' bude po 30. srpnu 2024 zastaralý. Naplánujte migraci nahttps://api.partnercenter.microsoft.comResource= odpovídajícím způsobem.
Informace o vygenerování tokenu najdete níže v ukázkové žádosti. Tři hodnoty potřebné ke generování tokenu jsou clientId
, clientSecret
a tenantId
. Parametr resource
by měl být nastaven na https://api.partnercenter.microsoft.com
.
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 části Volání mezi službami pomocí přihlašovacích údajů klienta (sdílený tajný klíč nebo certifikát).
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 |
Použití | IsVUsage |
Zákazník | Zákazník ISV |
Tržní přehledy | ISVMarketplaceInsights |
Výnos | Příjem ISV |
Uchovávání zákazníků | ISVOfferRetention |
Kvalita služby | ISVQualityOfService |
Licence | ISVLicense |
Verze obrazu virtuálního počítače | ISVVMImageVersion |
Následující části ukazují příklady přístupu k OrderId
prostřednictvím kódu programu z 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 zprávy o objednávkách k vytvoření vlastního dotazu pro sestavu, kterou chceme. Výchozí timespan
, pokud není zadaný 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 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 dříve vygenerovaný QueryId
k vytvoření 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 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í Swagger API.