상업용 Marketplace 분석 데이터에 액세스하기 위한 첫 번째 API 호출

상업용 Marketplace 분석 데이터에 액세스하기 위한 API 목록은 상업용 Marketplace 분석 데이터에 액세스하기 위한 API를 참조 하세요. 첫 번째 API 호출을 하기 전에 상업용 Marketplace 분석 데이터에 프로그래밍 방식으로 액세스하기 위한 필수 구성 요소를 충족했는지 확인합니다.

토큰 생성

메서드를 호출하기 전에 먼저 Microsoft Entra 액세스 토큰을 가져와야 합니다. Microsoft Entra 액세스 토큰을 API의 각 메서드에 대한 권한 부여 헤더에 전달해야 합니다. 액세스 토큰을 얻은 후 만료되기 전에 60분 동안 사용할 수 있습니다. 토큰이 만료되면 토큰을 새로 고치고 API에 대한 추가 호출에 계속 사용할 수 있습니다.

Warning

Resource=''https://graph.microsoft.com는 2024년 6월 30일 이후에 사용되지 않습니다. 그에 따라 Resource=''https://api.partnercenter.microsoft.com로 마이그레이션을 계획하세요.

토큰을 생성하려면 아래 샘플 요청을 참조하세요. 토큰을 생성하는 데 필요한 세 가지 값은 clientId, clientSecrettenantId. 매개 변수는 resource .로 https://api.partnercenter.microsoft.com설정해야 합니다.

요청 예제:

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'

응답 예제:

{
    "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}
}

애플리케이션에 대한 Microsoft Entra 토큰을 가져오는 방법에 대한 자세한 내용은 클라이언트 자격 증명(공유 비밀 또는 인증서)을 사용하여 서비스 대 서비스 호출을 참조하세요.

프로그래매틱 API 호출

이전 섹션에 설명된 대로 Microsoft Entra 토큰을 가져온 후 다음 단계에 따라 첫 번째 프로그래밍 방식 액세스 보고서를 만듭니다.

다음 데이터 세트(datasetName)에서 데이터를 다운로드할 수 있습니다.

보고서 이름 API의 데이터 세트 이름
순서 ISVOrder
사용 ISVUsage
고객 ISVCustomer
Marketplace 인사이트 ISVMarketplaceInsights
매출 ISVRevenue
고객 보존 ISVOfferRetention
서비스 품질 ISVQualityOfService
라이선스 ISVLicense
VM 이미지 버전 ISVVMImageVersion

다음 섹션에서는 ISVOrder 데이터 세트에서 프로그래밍 방식으로 액세스 OrderId 하는 방법의 예를 보여 줍니다.

1단계: 데이터 세트 가져오기 API를 사용하여 REST 호출

API 응답은 보고서를 다운로드할 수 있는 데이터 세트 이름을 제공합니다. 특정 데이터 세트의 경우 API 응답은 사용자 지정 보고서 템플릿에 사용할 수 있는 선택 가능한 열 목록도 제공합니다.

요청 예제:

curl 
--location 
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledDataset ' \ 
--header 'Authorization: Bearer <AzureADToken>'

응답 예제:

{
    "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
}

2단계: 사용자 지정 쿼리 만들기

이 단계에서는 주문 보고서의 주문 ID를 사용하여 원하는 보고서에 대한 사용자 지정 쿼리를 만듭니다. 쿼리에 지정되지 않은 경우 기본값 timespan 은 6개월입니다.

요청 예제:

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" 
             }'

응답 예제:

{
    "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
}

쿼리 queryId 를 성공적으로 실행하면 보고서를 생성하는 데 사용해야 하는 A가 생성됩니다.

3단계: 테스트 쿼리 API 실행

이 단계에서는 테스트 쿼리 API를 사용하여 생성된 쿼리의 상위 100개 행을 가져옵니다.

요청 예제:

curl 
--location 
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries/testQueryResult?exportQuery=SELECT%20OrderId%20from%20ISVOrder' \ 
--header ' Authorization: Bearer <AzureADToken>'

응답 예제:

{
    "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
}

4단계: 보고서 만들기

이 단계에서는 이전에 생성된 QueryId 보고서를 만드는 데 사용합니다.

요청 예제:

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"
                  }'

응답 예제:

{
    "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
}

성공적으로 실행 reportId 되면 보고서 다운로드를 예약하는 데 사용해야 하는 A가 생성됩니다.

5단계: 보고서 실행 API 실행

보고서의 보안 위치(URL)를 가져오기 위해 이제 보고서 실행 API를 실행합니다.

요청 예제:

Curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/72fa95ab-35f5-4d44-a1ee-503abbc88003' \
--header ' Authorization: Bearer <AzureADToken>' \

응답 예제:

{
    "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
}

다음 단계