Partager via


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.