Partage via


Effectuer votre premier appel d’API pour accéder aux données d’analyse de la place de marché commerciale

Pour obtenir la liste des API permettant d’accéder aux données d’analyse de la place de marché commerciale, consultez API pour accéder aux données d’analyse de la place de marché commerciale. Avant d’effectuer votre premier appel d’API, assurez-vous que vous avez rempli les conditions préalables pour accéder par programmation aux données d’analyse de la Place de marché commerciale.

Génération de jetons

Avant d’appeler l’une des méthodes, vous devez d’abord obtenir un jeton d’accès Microsoft Entra. Vous devez transmettre le jeton d’accès Microsoft Entra à l’en-tête d’autorisation de chaque méthode de l’API. Après avoir obtenu un jeton d’accès, vous disposez de 60 minutes pour l’utiliser avant qu’il n’expire. Après expiration, vous pouvez l’actualiser pour pouvoir continuer à l’utiliser dans de nouveaux appels à l’API.

Avertissement

Resource='https://graph.microsoft.com' sera déconseillé après le 30 juin 2024. Planifiez la migration vers Resource='https://api.partnercenter.microsoft.com' en conséquence.

Reportez-vous à l’exemple de requête ci-dessous pour générer un jeton. Les trois valeurs requises pour générer le jeton sont clientId, clientSecret et tenantId. Le paramètre resource doit être défini sur https://api.partnercenter.microsoft.com.

Exemple de requête :

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'

Exemple de réponse :

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

Pour plus d’informations sur l’obtention d’un jeton Microsoft Entra pour votre application, consultez Service to service appels à l’aide d’informations d’identification client (secret partagé ou certificat).

Appel d’API programmatique

Après avoir obtenu le jeton Microsoft Entra comme décrit dans la section précédente, procédez comme suit pour créer votre premier rapport d’accès par programmation.

Les données peuvent être téléchargées à partir des jeux de données suivants (datasetName) :

Nom du rapport Nom du jeu de données dans l’API
Ordre ISVOrder
Usage ISVUsage
Client ISVCustomer
Insights sur la Place de marché ISVMarketplaceInsights
Chiffre d’affaires ISVRevenue
Rétention des clients ISVOfferRetention
Qualité de service ISVQualityOfService
Licence ISVLicense
Version de l’image de machine virtuelle ISVVMImageVersion

Les sections suivantes montrent des exemples d’accès OrderId par programmation à partir du jeu de données ISVOrder.

Étape 1 : Effectuer un appel REST à l’aide de l’API Obtenir des jeux de données

La réponse de l’API fournit le nom du jeu de données à partir duquel vous pouvez télécharger le rapport. Pour le jeu de données spécifique, la réponse de l’API fournit également la liste des colonnes sélectionnables pouvant être utilisées pour votre modèle de rapport personnalisé.

Exemple de requête :

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

Exemple de réponse :

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

Étape 2 : Créer la requête personnalisée

Dans cette étape, nous allons utiliser l’ID de commande du rapport Commandes pour créer une requête personnalisée correspondant au rapport souhaité. La valeur par défaut timespan, si elle n’est pas spécifiée dans la requête, est de six mois.

Exemple de requête :

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

Exemple de réponse :

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

Si l’exécution de la requête aboutit, un queryId est généré et doit être utilisé pour générer le rapport.

Étape 3 : Exécuter l’API de requête de test

Dans cette étape, nous allons utiliser l’API de requête de test afin d’obtenir les 100 premières lignes pour la requête créée.

Exemple de requête :

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

Exemple de réponse :

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

Étape 4 : Créer le rapport

Dans cette étape, nous allons utiliser le QueryId généré précédemment pour créer le rapport.

Exemple de requête :

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

Exemple de réponse :

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

Si l’exécution aboutit, un reportId est généré et doit être utilisé pour planifier un téléchargement du rapport.

Étape 5 : Exécuter l’API des exécutions de rapport

Pour obtenir l’emplacement sécurisé (URL) du rapport, nous allons maintenant exécuter l’API Exécutions de rapport.

Exemple de requête :

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

Exemple de réponse :

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

Étapes suivantes