> [!CAUTION]
> This project is in public preview. We’ll do our best to maintain compatibility, but there may be breaking changes in upcoming releases.
# Microsoft Teams Apps Framework
<p>
<a href="https://pypi.org/project/microsoft-teams-apps" target="_blank">
<img src="https://img.shields.io/pypi/v/microsoft-teams-apps" />
</a>
<a href="https://pypi.org/project/microsoft-teams-apps" target="_blank">
<img src="https://img.shields.io/pypi/dw/microsoft-teams-apps" />
</a>
</p>
High-level framework for building Microsoft Teams applications.
Handles activity routing, authentication, and provides Microsoft Graph integration.
<a href="https://microsoft.github.io/teams-ai" target="_blank">
<img src="https://img.shields.io/badge/📖 Getting Started-blue?style=for-the-badge" />
</a>
## Features
- **Activity Routing**: Decorator-based routing for different activity types
- **OAuth Integration**: Built-in OAuth flow handling for user authentication
- **Microsoft Graph Integration**: Type-safe Graph client access via `user_graph` and `app_graph` properties
- **Plugin System**: Extensible plugin architecture for adding functionality
## Basic Usage
```python
from microsoft.teams.apps import App, ActivityContext
from microsoft.teams.api import MessageActivity
app = App()
@app.on_message
async def handle_message(ctx: ActivityContext[MessageActivity]):
await ctx.send(f"You said: {ctx.activity.text}")
# Start the app
await app.start()
```
## OAuth and Graph Integration
```python
@app.on_message
async def handle_message(ctx: ActivityContext[MessageActivity]):
if ctx.is_signed_in:
try:
# Access user's Graph data
me = await ctx.user_graph.me.get()
await ctx.send(f"Hello {me.display_name}!")
except (ValueError, RuntimeError, ImportError) as e:
await ctx.send(f"Graph access failed: {e}")
else:
# Prompt user to sign in
await ctx.sign_in()
```
## Optional Graph Dependencies
Microsoft Graph functionality requires additional dependencies:
```bash
# Recommended: Using uv
uv add microsoft-teams-apps[graph]
# Alternative: Using pip
pip install microsoft-teams-apps[graph]
```
If Graph dependencies are not installed, `user_graph` and `app_graph` will raise an `ImportError` when accessed. If the user is not signed in or tokens are unavailable, they will raise `ValueError`.
Raw data
{
"_id": null,
"home_page": null,
"name": "microsoft-teams-apps",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "agents, ai, bot, microsoft, teams",
"author": null,
"author_email": "Microsoft <TeamsAISDKFeedback@microsoft.com>",
"download_url": "https://files.pythonhosted.org/packages/86/50/131dedcad1680ae9a548a0b668914e96c40ea46d44acbc1954fd5d8f8302/microsoft_teams_apps-2.0.0a3.tar.gz",
"platform": null,
"description": "> [!CAUTION]\n> This project is in public preview. We\u2019ll do our best to maintain compatibility, but there may be breaking changes in upcoming releases. \n\n# Microsoft Teams Apps Framework\n\n<p>\n <a href=\"https://pypi.org/project/microsoft-teams-apps\" target=\"_blank\">\n <img src=\"https://img.shields.io/pypi/v/microsoft-teams-apps\" />\n </a>\n <a href=\"https://pypi.org/project/microsoft-teams-apps\" target=\"_blank\">\n <img src=\"https://img.shields.io/pypi/dw/microsoft-teams-apps\" />\n </a>\n</p>\n\nHigh-level framework for building Microsoft Teams applications.\nHandles activity routing, authentication, and provides Microsoft Graph integration.\n\n<a href=\"https://microsoft.github.io/teams-ai\" target=\"_blank\">\n <img src=\"https://img.shields.io/badge/\ud83d\udcd6 Getting Started-blue?style=for-the-badge\" />\n</a>\n\n## Features\n\n- **Activity Routing**: Decorator-based routing for different activity types\n- **OAuth Integration**: Built-in OAuth flow handling for user authentication\n- **Microsoft Graph Integration**: Type-safe Graph client access via `user_graph` and `app_graph` properties\n- **Plugin System**: Extensible plugin architecture for adding functionality\n\n## Basic Usage\n\n```python\nfrom microsoft.teams.apps import App, ActivityContext\nfrom microsoft.teams.api import MessageActivity\n\napp = App()\n\n@app.on_message\nasync def handle_message(ctx: ActivityContext[MessageActivity]):\n await ctx.send(f\"You said: {ctx.activity.text}\")\n\n# Start the app\nawait app.start()\n```\n\n## OAuth and Graph Integration\n\n```python\n@app.on_message\nasync def handle_message(ctx: ActivityContext[MessageActivity]):\n if ctx.is_signed_in:\n try:\n # Access user's Graph data\n me = await ctx.user_graph.me.get()\n await ctx.send(f\"Hello {me.display_name}!\")\n except (ValueError, RuntimeError, ImportError) as e:\n await ctx.send(f\"Graph access failed: {e}\")\n else:\n # Prompt user to sign in\n await ctx.sign_in()\n```\n\n## Optional Graph Dependencies\n\nMicrosoft Graph functionality requires additional dependencies:\n\n```bash\n# Recommended: Using uv\nuv add microsoft-teams-apps[graph]\n\n# Alternative: Using pip\npip install microsoft-teams-apps[graph]\n```\n\nIf Graph dependencies are not installed, `user_graph` and `app_graph` will raise an `ImportError` when accessed. If the user is not signed in or tokens are unavailable, they will raise `ValueError`.\n",
"bugtrack_url": null,
"license": null,
"summary": "The app package for a Microsoft Teams agent",
"version": "2.0.0a3",
"project_urls": null,
"split_keywords": [
"agents",
" ai",
" bot",
" microsoft",
" teams"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "44894d0631977feae2fc2b2efdd2c0b779e5ae59bc85b66a2d821cd49b486d45",
"md5": "09865eec9f30cf6d3a7a5ee0e4228f6d",
"sha256": "a2e12229b9678dc8e8dde4f276c117a3a0c2d3a64929afde430a7148fdfc4f24"
},
"downloads": -1,
"filename": "microsoft_teams_apps-2.0.0a3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "09865eec9f30cf6d3a7a5ee0e4228f6d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 65097,
"upload_time": "2025-10-18T00:15:49",
"upload_time_iso_8601": "2025-10-18T00:15:49.840610Z",
"url": "https://files.pythonhosted.org/packages/44/89/4d0631977feae2fc2b2efdd2c0b779e5ae59bc85b66a2d821cd49b486d45/microsoft_teams_apps-2.0.0a3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8650131dedcad1680ae9a548a0b668914e96c40ea46d44acbc1954fd5d8f8302",
"md5": "bcc535a977a6a916214541ee7101f53f",
"sha256": "5f7be6ee80eef6c9cad17968249ee78e9cdc05620549ec143c86f485fb5d173f"
},
"downloads": -1,
"filename": "microsoft_teams_apps-2.0.0a3.tar.gz",
"has_sig": false,
"md5_digest": "bcc535a977a6a916214541ee7101f53f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 60483,
"upload_time": "2025-10-18T00:15:51",
"upload_time_iso_8601": "2025-10-18T00:15:51.010569Z",
"url": "https://files.pythonhosted.org/packages/86/50/131dedcad1680ae9a548a0b668914e96c40ea46d44acbc1954fd5d8f8302/microsoft_teams_apps-2.0.0a3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-18 00:15:51",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "microsoft-teams-apps"
}