azure-mgmt-botservice-py
/azure-mgmt-botservice-py
Tworzy, zarządza i konfiguruje zasoby Azure Bot Service przez Management SDK dla Pythona.
- Autor
- sickn33 ↗
- Repozytorium
- agentic-awesome-skills ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 24.10.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 1
Brak sygnałów. Repozytorium zmienione 24.10.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Tworzy, zarządza i konfiguruje zasoby Azure Bot Service przez Management SDK dla Pythona.
Oryginalny opis (EN)
Azure Bot Service Management SDK for Python. Use for creating, managing, and configuring Azure Bot Service resources.
Jak działa
- Installation
- Environment Variables
- Authentication
- Create a Bot
- Get Bot Details
- List Bots in Resource Group
- List All Bots in Subscription
- Update Bot
- Delete Bot
- Configure Channels
Podgląd SKILL.md
---
name: azure-mgmt-botservice-py
description: Azure Bot Service Management SDK for Python. Use for creating, managing, and configuring Azure Bot Service resources.
risk: critical
source: community
date_added: '2026-02-27'
---
# Azure Bot Service Management SDK for Python
Manage Azure Bot Service resources including bots, channels, and connections.
## Installation
```bash
pip install azure-mgmt-botservice
pip install azure-identity
```
## Environment Variables
```bash
AZURE_SUBSCRIPTION_ID=<your-subscription-id>
AZURE_RESOURCE_GROUP=<your-resource-group>
```
## Authentication
```python
from azure.identity import DefaultAzureCredential
from azure.mgmt.botservice import AzureBotService
import os
credential = DefaultAzureCredential()
client = AzureBotService(
credential=credential,
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]
)
```
## Create a Bot
```python
from azure.mgmt.botservice import AzureBotService
from azure.mgmt.botservice.models import Bot, BotProperties, Sku
from azure.identity import DefaultAzureCredential
import os
credential = DefaultAzureCredential()
client = AzureBotService(
credential=credential,
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"]
)
resource_group = os.environ["AZURE_RESOURCE_GROUP"]
bot_name = "my-chat-bot"
bot = client.bots.create(
resource_group_name=resource_group,
resource_name=bot_name,
parameters=Bot(
location="global",
sku=Sku(name="F0"), # Free tier
kind="azurebot",
properties=BotProperties(
display_name="My Chat Bot",
description="A conversational AI bot",
endpoint="https://my-bot-app.azurewebsites.net/api/messages",
msa_app_id="<your-app-id>",
msa_app_type="MultiTenant"
)
)
)
print(f"Bot created: {bot.name}")
```
## Get Bot Details
```python
bot = client.bots.get(
resource_group_name=resource_group,
resource_name=bot_name
)
print(f"Bot: {bot.properties.display_name}")
print(f"Endpoint: {bot.properties.endpoint}")
print(f"SKU: {bot.sku.name}")
```
## List Bots in Resource Group
```python
bots = client.bots.list_by_resource_group(resource_group_name=resource_group)
for bot in bots:
print(f"Bot: {bot.name} - {bot.properties.display_name}")
```
## List All Bots in Subscription
```python
all_bots = client.bots.list()
for bot in all_bots:
print(f"Bot: {bot.name} in {bot.id.split('/')[4]}")
```
## Update Bot
```python
bot = client.bots.update(
resource_group_name=resource_group,
resource_name=bot_name,
properties=BotProperties(
display_name="Updated Bot Name",
description="Updated description"
)
)
```
## Delete Bot
```python
client.bots.delete(
resource_group_name=resource_group,
resource_name=bot_name
)
```
## Configure Channels
### Add Teams Channel
```python
from azure.mgmt.botservice.models import (
BotChannel,
MsTeamsChannel,
MsTeamsChannelProperties
)
channel = client.channels.create(
resource_group_name=resource_group,
resource_name=bot_name,
channel_name="MsTeamsChannel",
parameters=BotChannel(
location="global",
properties=MsTeamsChannel(
properties=MsTeamsChannelProperties(
is_enabled=True
)
)
)
)
```
### Add Direct Line Channel
```python
from azure.mgmt.botservice.models import (
BotChannel,
DirectLineChannel,
DirectLineChannelProperties,
DirectLineSite
)
channel = client.channels.create(
resource_group_name=resource_group,
resource_name=bot_name,
channel_name="DirectLineChannel",
parameters=BotChannel(
location="global",
properties=DirectLineChannel(
properties=DirectLineChannelProperties(
sites=[
DirectLineSite(
site_name="Default Site",
is_enabled=True,
is_v1_enabled=False,
is_v3_enabled=True
)
]
)
)
)
)
```
### Add Web Chat Channel
```python
from azure.mgmt.botservice.models import (
BotChannel,
WebChatChannel,
WebChatChannelProperties,
WebChatSite
)
channel = client.channels.create(
resource_group_name=resource_group,
resource_name=bot_name,
channel_name="WebChatChannel",
parameters=BotChannel(
location="global",
properties=WebChatChannel(
properties=WebChatChannelProperties(
sites=[
WebChatSite(
site_name="Default Site",
is_enabled=True
)
]
)
)
)
)
```
## Get Channel Details
```python
channel = client.channels.get(
resource_group_name=resource_group,
resource_name=bot_name,
channel_name="DirectLineChannel"
)
```
## List Channel Keys
```python
keys = client.channels.list_with_keys(
resource_group_name=resource_group,
resource_name=bot_name,
channel_name="DirectLineChannel"
)
# Access Direct Line keys
if hasattr(keys.properties, 'properties'):
for site in keys.properties.properties.sites:
print(f"Site: {site.site_name}")
# Do not print Direct Line keys; store only in approved secret storage.
```
## Bot Connections (OAuth)
### Create Connection Setting
```python
import os
from azure.mgmt.botservice.models import (
ConnectionSetting,
ConnectionSettingProperties
)
connection = client.bot_connection.create(
resource_group_name=resource_group,
resource_name=bot_name,
connection_name="graph-connection",
parameters=ConnectionSetting(
location="global",
properties=ConnectionSettingProperties(
client_id="<oauth-client-id>",
client_secret=os.environ["BOT_OAUTH_CLIENT_SECRET"],
scopes="User.Read",
service_provider_id="<service-provider-id>"
)
)
)
```
### List Connections
```python
connections = client.bot_connection.list_by_bot_service(
resource_group_name=resource_group,
resource_name=bot_name
)
for conn in connections:
print(f"Connection: {conn.name}")
```
## Client Operations
| Operation | Method |
|-----------|--------|
| `client.bots` | Bot CRUD operations |
| `client.channels` | Channel configuration |
| `client.bot_connection` | OAuth connection settings |
| `client.direct_line` | Direct Line channel operations |
| `client.email` | Email channel operations |
| `client.operations` | Available operations |
| `client.host_settings` | Host settings operations |
## SKU Options
| SKU | Description |
|-----|-------------|
| `F0` | Free tier (limited messages) |
| `S1` | Standard tier (unlimited messages) |
## Channel Types
| Channel | Class | Purpose |
|---------|-------|---------|
| `MsTeamsChannel` | Microsoft Teams | Teams integration |
| `DirectLineChannel` | Direct Line | Custom client integration |
| `WebChatChannel` | Web Chat | Embeddable web widget |
| `SlackChannel` | Slack | Slack workspace integration |
| `FacebookChannel` | Facebook | Messenger integration |
| `EmailChannel` | Email | Email communication |
## Best Practices
1. **Use DefaultAzureCredential** for authentication
2. **Start with F0 SKU** for development, upgrade to S1 for production
3. **Store MSA App ID/Secret securely** — use Key Vault
4. **Enable only needed channels** — reduces attack surface
5. **Rotate Direct Line keys** periodically
6. **Use managed identity** when possible for bot connections
7. **Configure proper CORS** for Web Chat channel
## When to Use
This skill is applicable to execute the workflow or actions described in the overview.
## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Management examples create/change real resources and channels: confirm subscription, resource group, bot/channel IDs and intended diff. Verify current supported identity/app types and channel/API versions before registering a new bot; a historical `MultiTenant` example does not establish current registration eligibility. F0 is a tier name, not a promise that every integration/channel is cost-free. Do not log channel keys or full management responses.
Wersje
| Repozytorium | Wynik | Licencja |
|---|---|---|
| Ta strona · sickn33/agentic-awesome-skills | 100 | MIT |
| rootcastleco/rei-skills | 100 | MIT |
| FrancoStino/opencode-skills-collection | 100 | MIT |
| microsoft/skills | 100 | MIT |
| LiHongwei-cn/lihongwei-cn | 100 | MIT |
| pinkpixel-dev/skills-collection-1 | 100 | Apache-2.0 |
Identyczna treść występuje jeszcze w 2 innych folderach na GitHubie. Tu pokazujemy jedną, najlepiej ocenioną kopię.
Migawka bazy z 28.10.2026 · wersja paczki 9341ba49ddb5 (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100azure-mgmt-fabric-py
Zarządza pojemnościami i zasobami Microsoft Fabric przez Azure Fabric Management SDK dla Pythona. - 100azure-mgmt-fabric-py
Zarządza pojemnościami i zasobami Microsoft Fabric przez Azure Fabric Management SDK dla Pythona. - 100azure-mgmt-fabric-py
Zarządza pojemnościami i zasobami Microsoft Fabric przez Azure Fabric Management SDK dla Pythona. - 100azure-mgmt-apicenter-py
Zarządza inwentarzem API, metadanymi i governance w całej organizacji przez Azure API Center Management SDK dla Pythona. - 100azure-mgmt-apicenter-py
Zarządza inwentarzem API, metadanymi i governance w całej organizacji przez Azure API Center Management SDK dla Pythona. - 100azure-mgmt-fabric-py
Zarządza pojemnościami i zasobami Microsoft Fabric przy użyciu Azure Fabric Management SDK dla Pythona.