Sdílet prostřednictvím


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, clientSecreta tenantId. Parametr resource by měl být nastaven na https://api.partnercenter.microsoft.comhodnotu .

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.