Wykonaj pierwsze wywołanie interfejsu API w celu uzyskania dostępu do danych analizy komercyjnej platformy handlowej
Aby uzyskać listę interfejsów API do uzyskiwania dostępu do danych analizy komercyjnej platformy handlowej, zobacz interfejsy API umożliwiające uzyskiwanie dostępu do danych analizy platformy handlowej. Przed wykonaniem pierwszego wywołania interfejsu API upewnij się, że spełniłeś wymagania wstępne , aby programowo uzyskać dostęp do danych analitycznych platformy handlowej.
Generowanie tokenów
Przed wywołaniem dowolnej z metod należy najpierw uzyskać token dostępu firmy Microsoft Entra. Należy przekazać token dostępu Microsoft Entra do nagłówka autoryzacji każdej metody w API. Po uzyskaniu tokenu dostępu należy 60 minut użyć go przed jego wygaśnięciem. Po wygaśnięciu tokenu możesz odświeżyć token i nadal używać go do dalszych wywołań interfejsu API.
Ostrzeżenie
Zasób=https://graph.microsoft.com" zostanie wycofany po 30 sierpnia 2024 r. Zaplanuj migrację do zasobuhttps://api.partnercenter.microsoft.com" odpowiednio.
Zapoznaj się z poniższym przykładowym żądaniem generowania tokenu. Trzy wartości wymagane do wygenerowania tokenu to clientId
, clientSecret
i tenantId
. Parametr resource
powinien być ustawiony na wartość https://api.partnercenter.microsoft.com
.
Przykład żądania :
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'
przykład odpowiedzi :
{
"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}
}
Aby uzyskać więcej informacji na temat uzyskiwania tokenu Entra firmy Microsoft dla aplikacji, zobacz Service to service calls using client credentials (shared secret or certificate).
Programowe wywołanie interfejsu API
Po uzyskaniu tokenu Entra firmy Microsoft zgodnie z opisem w poprzedniej sekcji wykonaj następujące kroki, aby utworzyć pierwszy raport dostępu programowego.
Dane można pobrać z następujących zestawów danych (datasetName):
Nazwa raportu | Nazwa zestawu danych w interfejsie API |
---|---|
Porządek | IsVOrder |
Użycie | Użycie ISV |
Klient | IsVCustomer |
Szczegółowe informacje o witrynie Marketplace | ISVMarketplaceInsights |
Przychód | Przychody ISV |
Przechowywanie klientów | ZachowanieOfertyISV |
Jakość usług | ISVQualityOfService |
Licencja | ISVLicense |
Wersja obrazu maszyny wirtualnej | ISVVMImageVersion |
W poniższych sekcjach przedstawiono przykłady programowego uzyskiwania dostępu do OrderId
z zestawu danych ISVOrder.
Krok 1: Wykonaj wywołanie REST za pomocą interfejsu API do pobierania zestawów danych
Odpowiedź interfejsu API zawiera nazwę zestawu danych, z którego można pobrać raport. W przypadku określonego zestawu danych odpowiedź interfejsu API zawiera również listę wybranych kolumn, których można użyć dla niestandardowego szablonu raportu.
Przykład żądania :
curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledDataset ' \
--header 'Authorization: Bearer <AzureADToken>'
przykład odpowiedzi :
{
"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. Tworzenie zapytania niestandardowego
W tym kroku użyjemy identyfikatora zamówienia z raportu Zamówień, aby utworzyć niestandardowe zapytanie dla żądanego raportu. Domyślna wartość timespan
, jeśli nie jest określona w zapytaniu, wynosi sześć miesięcy.
Przykład żądania :
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"
}'
przykład odpowiedzi :
{
"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
}
Po pomyślnym wykonaniu zapytania generowany jest queryId
, który musi zostać użyty do wygenerowania raportu.
Krok 3: Wykonaj testowe zapytanie API
W tym kroku użyjemy interfejsu API zapytania testowego, aby uzyskać 100 pierwszych wierszy dla utworzonego zapytania.
Przykład żądania:
curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries/testQueryResult?exportQuery=SELECT%20OrderId%20from%20ISVOrder' \
--header ' Authorization: Bearer <AzureADToken>'
przykład odpowiedzi :
{
"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. Tworzenie raportu
W tym kroku użyjemy wcześniej wygenerowanego QueryId
, aby utworzyć raport.
Przykład żądania:
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"
}'
przykład odpowiedzi :
{
"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
}
Po pomyślnym wykonaniu generowany jest reportId
, który musi być użyty do zaplanowania pobrania raportu.
Krok 5. Uruchomienie interfejsu API wykonywania raportów
Aby uzyskać bezpieczną lokalizację (adres URL) raportu, teraz użyjemy interfejsu API wykonywania raportów.
przykład żądania:
Curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/72fa95ab-35f5-4d44-a1ee-503abbc88003' \
--header ' Authorization: Bearer <AzureADToken>' \
przykład odpowiedzi :
{
"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
}
Można wypróbować interfejsy API za pomocą adresu URL Swagger API .