Partager via


Effectuez votre premier appel d’API pour accéder aux données d’analytique de la Place de marché Microsoft

Pour obtenir la liste des API permettant d’accéder aux données d’analyse de la Place de marché Microsoft, consultez les API pour accéder aux données d’analyse de la Place de marché Microsoft. 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’analytique de la Place de marché.

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 avez 60 minutes pour l’utiliser avant son expiration. Une fois le jeton expiré, vous pouvez actualiser le jeton et continuer à l’utiliser pour d’autres appels à l’API.

Avertissement

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

Reportez-vous à un exemple de requête ci-dessous pour générer un jeton. Les trois valeurs requises pour générer le jeton sont clientId, clientSecretet tenantId. Le resource paramètre 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
JSON ISVOrder
Usage ISVUsage
Client ISVCustomer
Insights sur la Place de marché ISVMarketplaceInsights
Revenu 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 Get Datasets

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 qui peuvent ê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 pour le 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
}

Lors de l’exécution réussie de la requête, une queryId génération doit être utilisée 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 pour obtenir les 100 premières lignes de 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 rapport précédemment généré QueryId 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
}

Une fois l’exécution réussie, une reportId génération doit être utilisée pour planifier un téléchargement du rapport.

Étape 5 : Exécuter l’API 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
}

Vous pouvez essayer les API via l’URL de l’API Swagger.