Effectuez votre premier appel d’API pour accéder aux données analytiques des insights des partenaires
Pour obtenir la liste des API permettant d’accéder aux données d’analyse d’insights des partenaires, consultez API pour accéder aux données d’analyse d’insights des partenaires. Avant d’effectuer votre premier appel d’API, veillez à respecter les conditions préalables pour accéder par programme aux données d’analyse des insights des partenaires.
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.
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 de ressource 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' \
--header 'Cookie: fpc=Ar2GMei7JwdKg4Y4onHrMpvxqd4FAQAAAEhU_tcOAAAA; stsservicecookie=estsfd; x-ms-gateway-slice=estsfd' \
--data-urlencode 'resource= https://api.partnercenter.microsoft.com' \
--data-urlencode 'client_id= ' \
--data-urlencode 'client_secret= ' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'scope=openid' \
--data-urlencode 'username= ' \
--data-urlencode 'password= '
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 Les données d’analyse Access à l’aide des services store.
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) :
- CustomersAndTenants
- SeatsSubscriptionsAndRevenue
- AzureUsage
- MSLearn
- OfficeUsage
- Profile
- TrainingCompletions
- DynamicsUsage
- CompetencySummaryHistory
- PowerBIUsage
- EMSUsage
- CompetencyPeformanceRequirement
- ResellerPerformance
- CLASAgreementRenewalsPropensity
- CLASAzurePropensity
- CLASD365Propensity
- CLASM365Propensity
- TeamsUsage3PApps
- TeamsUsageWorkload
- TeamsUsageMeetingsAndCalls
La section suivante montre des exemples d’accès SubscriptionId
par programmation à partir du jeu de données DynamicsUsage.
É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é. Vous pouvez également vous reporter aux Définitions des données pour obtenir les noms des colonnes.
Exemple de requête
curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1/mpn/ScheduledDataset'\
--header 'Authorization: Bearer <AADToken>'
Exemple de réponse
{
"value": [
{
"datasetName": "DynamicsUsage",
"selectableColumns": [
"PGAMpnId",
"SubscriptionId",
"SubscriptionStartDate",
"SubscriptionEndDate",
"SubscriptionStatus",
"Month",
"RevSumDivisionName",
"RevSumCategoryName",
"SKU",
"SKUId",
"FreeVsPaidSKU",
"SalesModel",
"DetailedSalesModel",
"CustomerName",
"CustomerTenantId",
"CustomerTpid",
"CustomerSegment",
"CustomerMarket",
"MPNId",
"PartnerName",
"PartnerLocation",
"PartnerAttachType",
"AvailableSeats",
"AssignedSeats",
"ActiveSeats",
"DeploymentOpportunity",
"ActiveUsagePercent"
],
"availableMetrics": [
"SubscriptionCount",
"TotalAssignedSeats",
"TotalSoldSeats",
"TotalActiveSeats",
"TotalRevenueAndACR",
"CustomerCount",
"CustomerTenantCount"
],
"availableDateRanges": [
"LAST_MONTH",
"LAST_3_MONTHS",
"LAST_6_MONTHS",
"LAST_1_YEAR",
"LIFETIME"
],
"minimumRecurrenceInterval": 24
}
],
"nextLink": null,
"totalCount": 1,
"message": "Dataset fetched successfully",
"statusCode": 200,
"dataRedacted": false
}
Étape 2 : Créer une requête personnalisée
Dans cette étape, nous allons utiliser le SubscriptionId du jeu de données DynamicsUsage pour créer une requête personnalisée pour le rapport que nous voulons. La valeur d’intervalle de temps par défaut , 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/mpn/ScheduledQueries' \
--header ' Authorization: Bearer <AADToken>' \
--header 'Content-Type: application/json' \
--data-raw
{
"Name": "SubscriptionId Dynamics ",
"Description": "List of Subscription Id from DynamicsUsage",
"Query": "SELECT SubscriptionId from DynamicsUsage "
}"
Exemple de réponse
{
"value": [
{
"queryId": "7d19305c-56db-4edc-b776-428340e3a9c8",
"name": "SubscriptionId Dynamics",
"description": "List of Subscription Id from DynamicsUsage",
"query": "SELECT SubscriptionId from DynamicsUsage",
"type": "userDefined",
"user": "GAUser@PITEST2.onmicrosoft.com",
"createdTime": "2021-03-31T07:28:37Z"
}
],
"nextLink": null,
"totalCount": 1,
"message": "Query created successfully",
"statusCode": 200,
"dataRedacted": false
}
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/mpn/ScheduledQueries/testQueryResult?queryId=7d19305c-56db-4edc-b776-428340e3a9c8' \
--header ' Authorization: Bearer <AADToken>'
Exemple de réponse
{
"value": [
{
"SubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
},
{
"SubscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
},
{
"SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a"
},
{
"SubscriptionId": "dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b"
},
{
"SubscriptionId": "eeee4efe-ff5f-aa6a-bb7b-cccccc8c8c8c"
},
.
.
.
{
"SubscriptionId": "ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d"
},
{
"SubscriptionId": "aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e"
},
{
"SubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
},
{
"SubscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
},
{
"SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a"
}
],
"nextLink": null,
"totalCount": 100,
"message": null,
"statusCode": 200,
"dataRedacted": false
}
É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/mpn/ScheduledReport'\
--header ' Authorization: Bearer <AADToken>' \
--header 'Content-Type: application/json' \
--data-raw
'{
"ReportName": "DynamicsUsage Subscription ID Report",
"Description": "Report for getting list of Subscription Id for Dynamics Usage",
"QueryId": "7d19305c-56db-4edc-b776-428340e3a9c8",
"StartTime": "2021-04-01T18:41:00Z",
"ExecuteNow": false,
"QueryStartTime": "2021-03-31T18:41:00Z",
"QueryEndTime": "2021-06-30T18:41:00Z",
"RecurrenceInterval": 48,
"RecurrenceCount": 20,
"Format": "csv",
"CallbackUrl": "https://<SampleCallbackUrl>",
"CallbackMethod": "GET"
}'
Exemple de réponse
{
"value": [
{
"reportId": "cdc61cfe-d028-4333-a215-a1df51ccbfd4",
"reportName": "DynamicsUsage Subscription ID Report",
"description": "Report for getting list of Subscription Id for Dynamics Usage",
"queryId": "7d19305c-56db-4edc-b776-428340e3a9c8",
"query": "SELECT SubscriptionId from DynamicsUsage",
"user": "GAUser@PITEST2.onmicrosoft.com",
"createdTime": "2021-03-31T08:15:15Z",
"modifiedTime": null,
"executeNow": false,
"startTime": "2021-04-01T18:41:00Z",
"reportStatus": "Active",
"recurrenceInterval": 48,
"recurrenceCount": 20,
"callbackUrl": "https://<SampleCallbackUrl>",
"CallbackMethod": "GET",
"format": "csv"
}
],
"nextLink": null,
"totalCount": 1,
"message": "Report created successfully",
"statusCode": 200,
"dataRedacted": false
}
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
Dans cette étape, nous allons utiliser l’API Exécutions de rapports pour obtenir l’emplacement sécurisé (URL) du rapport.
Exemple de requête
Curl
--location
--request GET 'https://api.partnercenter.microsoft.com/insights/v1/mpn/ScheduledReport/execution/ cdc61cfe-d028-4333-a215-a1df51ccbfd4?getLatestExecution=true'\
--header ' Authorization: Bearer <AADToken>' \
Exemple de réponse
{
"value": [
{
"executionId": "315eb63e-e2b2-41a2-ad8e-790b040fdce3",
"reportId": "cdc61cfe-d028-4333-a215-a1df51ccbfd4",
"recurrenceInterval": 48,
"recurrenceCount": 20,
"callbackUrl": null,
"CallbackMethod": null,
"format": "csv",
"executionStatus": "Pending",
"reportLocation": null,
"reportAccessSecureLink": null,
"reportExpiryTime": null,
"reportGeneratedTime": null
}
],
"nextLink": null,
"totalCount": 1,
"message": null,
"statusCode": 200,
"dataRedacted": false
}
Essayez les API via l’URL de l’API Swagger.