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 komercyjnej platformy handlowej. Przed wykonaniem pierwszego wywołania interfejsu API upewnij się, że zostały spełnione wymagania wstępne dotyczące programowego uzyskiwania dostępu do danych analizy komercyjnej 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 firmy Microsoft Entra do nagłówka Autoryzacja każdej metody w interfejsie 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 zasobu ="https://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 https://api.partnercenter.microsoft.com
wartość .
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 to service calls using client credentials (shared secret or certificate) (Usługa do obsługi wywołań przy użyciu poświadczeń klienta (wspólny klucz tajny lub certyfikat).
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 |
---|---|
Zamówienie | IsVOrder |
Użycie | IsVUsage |
Klient | IsVCustomer |
Szczegółowe informacje o witrynie Marketplace | ISVMarketplaceInsights |
Przychód | ISVRevenue |
Przechowywanie klientów | ISVOfferRetention |
Jakość usług | ISVQualityOfService |
Licencja | ISVLicense |
Wersja obrazu maszyny wirtualnej | ISVVMImageVersion |
W poniższych sekcjach przedstawiono przykłady programowego dostępu OrderId
z zestawu danych ISVOrder.
Krok 1. Wykonywanie wywołania REST przy użyciu interfejsu API 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. Wartość domyślna timespan
, jeśli nie zostanie 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 element , queryId
który musi zostać użyty do wygenerowania raportu.
Krok 3. Wykonywanie interfejsu API zapytania testowego
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
raportu, 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 element, reportId
który musi zostać użyty do zaplanowanego pobrania raportu.
Krok 5. Wykonywanie interfejsu API wykonywania raportów
Aby uzyskać bezpieczną lokalizację (adres URL) raportu, teraz wykonamy interfejs 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
}
Interfejsy API można wypróbować za pomocą adresu URL interfejsu API programu Swagger.