Udostępnij za pośrednictwem


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 czerwca 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, clientSecreti tenantId. Parametr resource powinien być ustawiony na https://api.partnercenter.microsoft.comwartość .

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
}

Następne kroki