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 à la Place de marché commerciale analytique données.
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 août 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 |
Utilisation | 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
}
Vous pouvez tester les API à l’aide de l’URL d’API Swagger.