Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Importante
Les API sous la /beta version sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge.
L’API Microsoft 365 Copilot Chat vous permet de créer et de poursuivre des conversations multitours avec Microsoft 365 Copilot, tout en respectant les contrôles d’accès définis dans le organization. Utilisez l’API Chat pour poursuivre les conversations synchrones avec Microsoft 365 Copilot.
Cette documentation couvre la poursuite des conversations Copilot synchrones à l’aide de l’API Chat. Découvrez comment créer des conversations Copilot ou continuer les conversations diffusées en continu avec l’API Chat.
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.
| Type d’autorisation | Autorisations avec privilèges minimum | Autorisations privilégiées plus élevées |
|---|---|---|
| Déléguée (compte professionnel ou scolaire) | Sites.Read.All, Mail.Read, Personnes. Read.All, OnlineMeetingTranscript.Read.All, Chat.Read, ChannelMessage.Read.All, ExternalItem.Read.All* | Non prise en charge. |
| Déléguée (compte Microsoft personnel) | Non prise en charge. | Non prise en charge. |
| Application | Non prise en charge. | Non prise en charge. |
* Vous avez besoin de toutes ces autorisations Microsoft Graph pour appeler correctement l’API Microsoft 365 Copilot Chat.
Requête HTTP
POST https://graph.microsoft.com/beta/copilot/conversations/{conversationId}/chat
En-têtes de demande
| Nom | Description |
|---|---|
Authorization |
Bearer {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation. |
Content-Type |
application/json. Obligatoire. |
Corps de la demande
Dans le corps de la demande, fournissez une représentation JSON des paramètres.
Le tableau suivant répertorie les paramètres facultatifs et obligatoires que vous pouvez utiliser lorsque vous appelez cette action.
| Paramètre | Type | Description |
|---|---|---|
message |
copilotConversationRequestMessageParameter | Message de conversation envoyé dans la conversation Copilot. Obligatoire. |
additionalContext |
collection copilotContextMessage | Contexte supplémentaire pour la conversation Copilot. Cela doit être utilisé pour la mise à la terre supplémentaire. Facultatif. |
locationHint |
copilotConversationLocation | Informations sur l’emplacement de l’utilisateur. Obligatoire. |
contextualResources |
copilotContextualResources | Fournit des fichiers OneDrive et SharePoint qui doivent être utilisés comme contexte et/ou active la recherche web. Facultatif. |
Réponse
Si elle réussit, cette action renvoie un 200 OK code de réponse et une copilotConversation dans le corps de la réponse.
Exemples
Exemple 1 : envoi d’un message de conversation à l’API Microsoft 365 Copilot Chat
L’exemple suivant montre comment envoyer une invite à l’API Chat à l’aide du point de terminaison synchrone.
Demande
L’exemple suivant illustre la demande.
POST https://graph.microsoft.com/beta/copilot/conversations/0d110e7e-2b7e-4270-a899-fd2af6fde333/chat
Content-Type: application/json
{
"message": {
"text": "What meeting do I have at 9 AM tomorrow morning?"
},
"locationHint": {
"timeZone": "America/New_York"
}
}
Réponse
L’exemple suivant illustre la réponse.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.copilotConversation",
"id": "0d110e7e-2b7e-4270-a899-fd2af6fde333",
"createdDateTime": "2025-09-30T15:55:53.4711746Z",
"displayName": "What meeting do I have at 9 AM tomorrow morning?",
"state": "active",
"turnCount": 1,
"messages": [
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "cc211f56-1a5e-0af0-fec2-c354ce468b95",
"text": "What meeting do I have at 9 AM tomorrow morning?",
"createdDateTime": "2025-09-30T15:55:53.4711746Z",
"adaptiveCards": [],
"attributions": [],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
},
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "3fe6b260-c682-4f8e-a201-022ccb300742",
"text": "You asked about your meeting scheduled for **9 AM tomorrow**, and I found **1 meeting** on your calendar.\n\n### 📅 Tomorrow at 9 AM\n- **Meeting**: <Event>Contoso Engineering Standup</Event>\n- **Organizer**: <Person>John Doe</Person>[^1^]\n- **Time**: 9:00 AM – 9:30 AM\n- **Location**: Microsoft Teams Meeting\n- **Status**: No one has accepted the invite yet[^1^]\n\nLet me know if you'd like help preparing for this meeting or checking who else was invited.",
"createdDateTime": "2025-09-30T15:55:58.9856658Z",
"adaptiveCards": [
{}
],
"attributions": [
{
"attributionType": "annotation",
"providerDisplayName": "",
"attributionSource": "model",
"seeMoreWebUrl": "https://teams.microsoft.com/l/meeting/details?eventId=BBMkADg5ZjdjZGNiLWRiMzItNDA3MC1iNDNlLTdlMGY4ZDc0ZjdlZgBGAAAAAACm2kxZvrUtTa-iv1uzeNCxBwA4nsl0tFf4R7qmHdVqpNbsAAAAAAENAAA4nsl0tFf4R7qmHdVqpNbsAAAVa4BBAAA%3d&EntityRepresentationId=988db526-6e9b-46ec-906e-3fba32438e5d",
"imageWebUrl": "",
"imageFavIcon": "",
"imageWidth": 0,
"imageHeight": 0
},
{
"attributionType": "annotation",
"providerDisplayName": "",
"attributionSource": "model",
"seeMoreWebUrl": "https://www.office.com/search?q=John+Doe&EntityRepresentationId=g38b20af-0d21-47fd-8e45-fd9d55215cb3",
"imageWebUrl": "",
"imageFavIcon": "",
"imageWidth": 0,
"imageHeight": 0
},
{
"attributionType": "citation",
"providerDisplayName": "Contoso Engineering Standup",
"attributionSource": "model",
"seeMoreWebUrl": "https://teams.microsoft.com/l/meeting/details?eventId=BBMkADg5ZjdjZGNiLWRiMzItNDA3MC1iNDNlLTdlMGY4ZDc0ZjdlZgBGAAAAAACm2kxZvrUtTa-iv1uzeNCxBwA4nsl0tFf4R7qmHdVqpNbsAAAAAAENAAA4nsl0tFf4R7qmHdVqpNbsAAAVa4BBAAA%3d",
"imageWebUrl": "",
"imageFavIcon": "",
"imageWidth": 0,
"imageHeight": 0
}
],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
}
]
}
Exemple 2 : Utilisation d’un fichier OneDrive ou SharePoint comme contexte dans un message de conversation à l’API Microsoft 365 Copilot Chat
L’exemple suivant montre comment utiliser un fichier OneDrive ou SharePoint comme contexte lors de l’envoi d’un message à l’API de conversation. Plusieurs fichiers OneDrive et SharePoint peuvent être utilisés comme contexte lors de l’envoi d’un message de conversation.
Demande
L’exemple suivant illustre la demande.
POST https://graph.microsoft.com/beta/copilot/conversations/0d110e7e-2b7e-4270-a899-fd2af6fde333/chat
Content-Type: application/json
{
"message": {
"text": "Summarize this document for me."
},
"locationHint": {
"timeZone": "America/New_York"
},
"contextualResources": {
"files": [
{
"uri": "https://contoso.sharepoint.com/sites/Engineering/Shared%20Documents/Specs/Business-Model.docx"
}
]
}
}
Réponse
L’exemple suivant illustre la réponse.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.copilotConversation",
"id": "0d110e7e-2b7e-4270-a899-fd2af6fde333",
"createdDateTime": "2025-09-30T16:15:13.0889735Z",
"displayName": "What meeting do I have at 9 AM tomorrow morning?",
"state": "active",
"turnCount": 2,
"messages": [
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "7b9f74b6-673a-7077-d29e-5ef8a6c6968c",
"text": "Summarize this document for me.",
"createdDateTime": "2025-09-30T16:15:13.0889735Z",
"adaptiveCards": [],
"attributions": [],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
},
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "85e25e6e-4218-40fb-91a3-897d555d18d0",
"text": "You asked for a summary of the document \"<File>Business-Model.docx</File>\". Here's a concise overview based on its content:\n\n---\n\n## **Summary: What Is a Business Model?**\n\n### **Definition & Importance**\n- A business model is a holistic framework for creating, delivering, and capturing value. It's not just about monetization, but about how an organization systematically unlocks long-term value for itself and its customers.\n- Business models are essential for startups and established companies alike, as they guide value creation, customer engagement, and sustainable growth.\n\n### **Key Concepts**\n- **Business Model vs. Business Plan:** A business model is about experimentation and testing assumptions in the real world, while a business plan is a static document with projections that are often untested.\n- **Business Model vs. Revenue Strategy:** Monetization is just one part of a business model. A true business model also covers operations, customer acquisition, retention, supply chain, and more.\n\n### **Design & Innovation**\n- Business model design is about building a sustainable value chain, starting with a clear value proposition and focusing on key stakeholders.\n- Innovation in business models can be more disruptive than technological innovation. Companies like Company1, Company2, and Company3 succeeded by innovating their business models, not just their technology.\n- Competitive advantages (or \"moats\") are often built around innovative business models, especially in the digital era.\n\n### **Experimentation**\n- Business modeling is an iterative process, much like scientific experimentation. Entrepreneurs must test, adapt, and refine their models to find what works in the marketplace.\n\n### **Frameworks**\n- **Business Model Canvas:** A popular tool that breaks down a business model into key partners, activities, value propositions, customer relationships, segments, resources, channels, cost structure, and revenue streams.\n- **Lean Startup Canvas:** Focuses on experimentation, customer feedback, and iterative design, especially for startups.\n\n### **Components (FourWeekMBA Perspective)**\n- **People Dimension:** Value proposition, brand positioning, and ambitious goal setting.\n- **Financial Dimension:** Customer segments, distribution channels, and profit formula.\n\n### **Types of Business Models**\nThe document details 30+ business model types, including:\n- Asymmetric (hidden revenue, e.g., Company1, Company4)\n- One-for-one (e.g., Company5)\n- Razor and blade (e.g., Company6)\n- Peer-to-peer (e.g., Company7)\n- Multi-sided platforms (e.g., Company8)\n- Freemium, subscription, affiliate, consulting, agency, vertically integrated, e-commerce marketplace, discount, attention merchant, privacy-focused, franchising, on-demand, user-generated content, educational niche, chain/franchise mix, instant news, blockchain-based, multi-brand, family-owned, humanist enterprise, direct-to-consumer, enterprise/complex sales, distribution-based, and more.\n\n### **Key Takeaways**\n- There is no single best business model; success depends on context, timing, and market conditions.\n- Business models must evolve with changing technologies and market needs.\n- Experimentation, adaptability, and a clear value proposition are critical for long-term success.\n\n---\n\nIf you'd like a deeper dive into any specific section or business model type from the document, just let me know!",
"createdDateTime": "2025-09-30T16:15:25.509337Z",
"adaptiveCards": [
{}
],
"attributions": [
{
"attributionType": "annotation",
"providerDisplayName": "",
"attributionSource": "model",
"seeMoreWebUrl": "https://contoso.sharepoint.com/sites/Engineering/Shared%20Documents/Specs/Business-Model.docx",
"imageWebUrl": "",
"imageFavIcon": "",
"imageWidth": 0,
"imageHeight": 0
},
{
"attributionType": "citation",
"providerDisplayName": "529425287-What-Is-a-Business-Model",
"attributionSource": "grounding",
"seeMoreWebUrl": "https://contoso.sharepoint.com/sites/Engineering/Shared%20Documents/Specs/Business-Model.docx",
"imageWebUrl": "",
"imageFavIcon": "",
"imageWidth": 0,
"imageHeight": 0
}
],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
}
]
}
Exemple 3 : désactivation de la recherche web lors de l’envoi d’un message de conversation à l’API Microsoft 365 Copilot Chat
L’exemple suivant montre comment désactiver la mise à l’terre de la recherche web lors de l’envoi d’un message de conversation à l’API de conversation. Si la mise à la base de la recherche web est désactivée, seule la base de recherche d’entreprise est utilisée pour répondre à un message de conversation. La désactivation de la mise à la base de la recherche web est une action à un seul tour.
Demande
L’exemple suivant illustre la demande.
POST https://graph.microsoft.com/beta/copilot/conversations/0d110e7e-2b7e-4270-a899-fd2af6fde333/chat
Content-Type: application/json
{
"message": {
"text": "What is the highest grossing movie at the global box office this year?"
},
"locationHint": {
"timeZone": "America/New_York"
},
"contextualResources": {
"webContext": {
"isWebEnabled": false
}
}
}
Réponse
L’exemple suivant illustre la réponse.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.copilotConversation",
"id": "0d110e7e-2b7e-4270-a899-fd2af6fde333",
"createdDateTime": "2025-09-30T20:54:38.6856711Z",
"displayName": "What meeting do I have at 9 AM tomorrow morning?",
"state": "active",
"turnCount": 3,
"messages": [
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "40ec0e9f-d46a-0d57-a3c4-7342d86929d9",
"text": "What is the highest grossing movie at the global box office this year?",
"createdDateTime": "2025-09-30T20:54:38.6856711Z",
"adaptiveCards": [],
"attributions": [],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
},
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "9c0a96b9-ccf1-4a50-82ca-1ef7c2776c54",
"text": "You asked: **What is the highest grossing movie at the global box office this year?**\n\nCurrently, I do not have access to real-time web search or external box office databases, and there are no internal enterprise documents or files provided that contain this information. As a result, I cannot provide the latest global box office data for this year.\n\n**How you can find this information:**\n- The most reliable sources for up-to-date box office rankings are websites like Source1, Source2, or Source3. These sites regularly update global box office statistics and highlight the top-grossing films of the year.\n\nIf you have a specific internal report or file related to box office performance, please let me know where to find it, and I'll be happy to summarize the relevant details for you! Would you like tips on how to track box office trends or insights into recent movie industry performance?",
"createdDateTime": "2025-09-30T20:54:45.2785423Z",
"adaptiveCards": [
{}
],
"attributions": [],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
}
]
}
Exemple 4 : Envoi d’un contexte supplémentaire avec un message de conversation à l’API Microsoft 365 Copilot Chat
L’exemple suivant montre comment envoyer davantage de contexte avec un message de conversation à l’API Chat. Ce contexte supplémentaire permet à l’API De conversation de raisonner, comme des extraits de documents, d’articles ou de sites web.
Demande
L’exemple suivant illustre la demande.
POST https://graph.microsoft.com/beta/copilot/conversations/0d110e7e-2b7e-4270-a899-fd2af6fde333/chat
Content-Type: application/json
{
"message": {
"text": "What is the birthday of my best friend, John Doe?"
},
"additionalContext": [
{
"text": "John Doe's birthday is on January 1st."
}
],
"locationHint": {
"timeZone": "America/New_York"
}
}
Réponse
L’exemple suivant illustre la réponse.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.copilotConversation",
"id": "0d110e7e-2b7e-4270-a899-fd2af6fde333",
"createdDateTime": "2025-09-30T21:00:22.9880382Z",
"displayName": "What meeting do I have at 9 AM tomorrow morning?",
"state": "active",
"turnCount": 4,
"messages": [
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "70894d7b-94b2-d65a-f4ed-7f7b10f63737",
"text": "What is the birthday of my best friend, John Doe?",
"createdDateTime": "2025-09-30T21:00:22.9880382Z",
"adaptiveCards": [],
"attributions": [],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
},
{
"@odata.type": "#microsoft.graph.copilotConversationResponseMessage",
"id": "65b34190-40d2-4933-9539-8324684aca5a",
"text": "You asked for the birthday of your best friend, <Person>John Doe</Person>.\n\nBased on the information available, <Person>John Doe</Person>'s birthday is on **January 1st**. If you need this added to your calendar or want a reminder set up, just let me know!",
"createdDateTime": "2025-09-30T21:00:26.9371633Z",
"adaptiveCards": [
{}
],
"attributions": [],
"sensitivityLabel": {
"sensitivityLabelId": null,
"displayName": null,
"tooltip": null,
"priority": null,
"color": null,
"isEncrypted": null
}
}
]
}