{"id":"16b5a767-542d-49c7-b1d3-14234ffe48d9","shortId":"gMC7dV","kind":"skill","title":"azure-mgmt-botservice-py","tagline":"Azure Bot Service Management SDK for Python. Use for creating, managing, and configuring Azure Bot Service resources.","description":"# Azure Bot Service Management SDK for Python\n\nManage Azure Bot Service resources including bots, channels, and connections.\n\n## Installation\n\n```bash\npip install azure-mgmt-botservice\npip install azure-identity\n```\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=<your-subscription-id>\nAZURE_RESOURCE_GROUP=<your-resource-group>\n```\n\n## Authentication\n\n```python\nfrom azure.identity import DefaultAzureCredential\nfrom azure.mgmt.botservice import AzureBotService\nimport os\n\ncredential = DefaultAzureCredential()\nclient = AzureBotService(\n    credential=credential,\n    subscription_id=os.environ[\"AZURE_SUBSCRIPTION_ID\"]\n)\n```\n\n## Create a Bot\n\n```python\nfrom azure.mgmt.botservice import AzureBotService\nfrom azure.mgmt.botservice.models import Bot, BotProperties, Sku\nfrom azure.identity import DefaultAzureCredential\nimport os\n\ncredential = DefaultAzureCredential()\nclient = AzureBotService(\n    credential=credential,\n    subscription_id=os.environ[\"AZURE_SUBSCRIPTION_ID\"]\n)\n\nresource_group = os.environ[\"AZURE_RESOURCE_GROUP\"]\nbot_name = \"my-chat-bot\"\n\nbot = client.bots.create(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    parameters=Bot(\n        location=\"global\",\n        sku=Sku(name=\"F0\"),  # Free tier\n        kind=\"azurebot\",\n        properties=BotProperties(\n            display_name=\"My Chat Bot\",\n            description=\"A conversational AI bot\",\n            endpoint=\"https://my-bot-app.azurewebsites.net/api/messages\",\n            msa_app_id=\"<your-app-id>\",\n            msa_app_type=\"MultiTenant\"\n        )\n    )\n)\n\nprint(f\"Bot created: {bot.name}\")\n```\n\n## Get Bot Details\n\n```python\nbot = client.bots.get(\n    resource_group_name=resource_group,\n    resource_name=bot_name\n)\n\nprint(f\"Bot: {bot.properties.display_name}\")\nprint(f\"Endpoint: {bot.properties.endpoint}\")\nprint(f\"SKU: {bot.sku.name}\")\n```\n\n## List Bots in Resource Group\n\n```python\nbots = client.bots.list_by_resource_group(resource_group_name=resource_group)\n\nfor bot in bots:\n    print(f\"Bot: {bot.name} - {bot.properties.display_name}\")\n```\n\n## List All Bots in Subscription\n\n```python\nall_bots = client.bots.list()\n\nfor bot in all_bots:\n    print(f\"Bot: {bot.name} in {bot.id.split('/')[4]}\")\n```\n\n## Update Bot\n\n```python\nbot = client.bots.update(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    properties=BotProperties(\n        display_name=\"Updated Bot Name\",\n        description=\"Updated description\"\n    )\n)\n```\n\n## Delete Bot\n\n```python\nclient.bots.delete(\n    resource_group_name=resource_group,\n    resource_name=bot_name\n)\n```\n\n## Configure Channels\n\n### Add Teams Channel\n\n```python\nfrom azure.mgmt.botservice.models import (\n    BotChannel,\n    MsTeamsChannel,\n    MsTeamsChannelProperties\n)\n\nchannel = client.channels.create(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    channel_name=\"MsTeamsChannel\",\n    parameters=BotChannel(\n        location=\"global\",\n        properties=MsTeamsChannel(\n            properties=MsTeamsChannelProperties(\n                is_enabled=True\n            )\n        )\n    )\n)\n```\n\n### Add Direct Line Channel\n\n```python\nfrom azure.mgmt.botservice.models import (\n    BotChannel,\n    DirectLineChannel,\n    DirectLineChannelProperties,\n    DirectLineSite\n)\n\nchannel = client.channels.create(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    channel_name=\"DirectLineChannel\",\n    parameters=BotChannel(\n        location=\"global\",\n        properties=DirectLineChannel(\n            properties=DirectLineChannelProperties(\n                sites=[\n                    DirectLineSite(\n                        site_name=\"Default Site\",\n                        is_enabled=True,\n                        is_v1_enabled=False,\n                        is_v3_enabled=True\n                    )\n                ]\n            )\n        )\n    )\n)\n```\n\n### Add Web Chat Channel\n\n```python\nfrom azure.mgmt.botservice.models import (\n    BotChannel,\n    WebChatChannel,\n    WebChatChannelProperties,\n    WebChatSite\n)\n\nchannel = client.channels.create(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    channel_name=\"WebChatChannel\",\n    parameters=BotChannel(\n        location=\"global\",\n        properties=WebChatChannel(\n            properties=WebChatChannelProperties(\n                sites=[\n                    WebChatSite(\n                        site_name=\"Default Site\",\n                        is_enabled=True\n                    )\n                ]\n            )\n        )\n    )\n)\n```\n\n## Get Channel Details\n\n```python\nchannel = client.channels.get(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    channel_name=\"DirectLineChannel\"\n)\n```\n\n## List Channel Keys\n\n```python\nkeys = client.channels.list_with_keys(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    channel_name=\"DirectLineChannel\"\n)\n\n# Access Direct Line keys\nif hasattr(keys.properties, 'properties'):\n    for site in keys.properties.properties.sites:\n        print(f\"Site: {site.site_name}\")\n        print(f\"Key: {site.key}\")\n```\n\n## Bot Connections (OAuth)\n\n### Create Connection Setting\n\n```python\nfrom azure.mgmt.botservice.models import (\n    ConnectionSetting,\n    ConnectionSettingProperties\n)\n\nconnection = client.bot_connection.create(\n    resource_group_name=resource_group,\n    resource_name=bot_name,\n    connection_name=\"graph-connection\",\n    parameters=ConnectionSetting(\n        location=\"global\",\n        properties=ConnectionSettingProperties(\n            client_id=\"<oauth-client-id>\",\n            client_secret=\"<oauth-client-secret>\",\n            scopes=\"User.Read\",\n            service_provider_id=\"<service-provider-id>\"\n        )\n    )\n)\n```\n\n### List Connections\n\n```python\nconnections = client.bot_connection.list_by_bot_service(\n    resource_group_name=resource_group,\n    resource_name=bot_name\n)\n\nfor conn in connections:\n    print(f\"Connection: {conn.name}\")\n```\n\n## Client Operations\n\n| Operation | Method |\n|-----------|--------|\n| `client.bots` | Bot CRUD operations |\n| `client.channels` | Channel configuration |\n| `client.bot_connection` | OAuth connection settings |\n| `client.direct_line` | Direct Line channel operations |\n| `client.email` | Email channel operations |\n| `client.operations` | Available operations |\n| `client.host_settings` | Host settings operations |\n\n## SKU Options\n\n| SKU | Description |\n|-----|-------------|\n| `F0` | Free tier (limited messages) |\n| `S1` | Standard tier (unlimited messages) |\n\n## Channel Types\n\n| Channel | Class | Purpose |\n|---------|-------|---------|\n| `MsTeamsChannel` | Microsoft Teams | Teams integration |\n| `DirectLineChannel` | Direct Line | Custom client integration |\n| `WebChatChannel` | Web Chat | Embeddable web widget |\n| `SlackChannel` | Slack | Slack workspace integration |\n| `FacebookChannel` | Facebook | Messenger integration |\n| `EmailChannel` | Email | Email communication |\n\n## Best Practices\n\n1. **Use DefaultAzureCredential** for authentication\n2. **Start with F0 SKU** for development, upgrade to S1 for production\n3. **Store MSA App ID/Secret securely** — use Key Vault\n4. **Enable only needed channels** — reduces attack surface\n5. **Rotate Direct Line keys** periodically\n6. **Use managed identity** when possible for bot connections\n7. **Configure proper CORS** for Web Chat channel\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","mgmt","botservice","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-azure-mgmt-botservice-py","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-mgmt-botservice-py","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (7,776 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:32.115Z","embedding":null,"createdAt":"2026-04-18T21:32:45.770Z","updatedAt":"2026-04-24T18:50:32.115Z","lastSeenAt":"2026-04-24T18:50:32.115Z","tsv":"'/api/messages':168 '1':636 '2':641 '3':653 '4':255,662 '5':670 '6':676 '7':685 'access':462 'action':705 'add':295,330,381 'ai':163 'app':170,173,656 'applic':699 'ask':743 'attack':668 'authent':62,640 'avail':578 'azur':2,6,19,23,31,45,51,56,59,83,115,121 'azure-ident':50 'azure-mgmt-botservic':44 'azure-mgmt-botservice-pi':1 'azure.identity':65,101 'azure.mgmt.botservice':69,91 'azure.mgmt.botservice.models':95,300,336,387,491 'azurebot':152 'azurebotservic':71,77,93,109 'bash':41,55 'best':634 'bot':7,20,24,32,36,88,97,124,129,130,139,142,159,164,178,182,185,194,198,210,215,226,228,231,237,242,245,248,251,257,259,268,275,281,291,314,351,402,437,457,483,504,532,541,556,683 'bot.id.split':254 'bot.name':180,232,252 'bot.properties.display':199,233 'bot.properties.endpoint':204 'bot.sku.name':208 'botchannel':302,320,338,357,389,408 'botproperti':98,154,271 'botservic':4,47 'boundari':751 'channel':37,294,297,305,316,333,342,353,384,393,404,425,428,439,443,459,560,571,575,599,601,666,692 'chat':128,158,383,617,691 'clarif':745 'class':602 'clear':718 'client':76,108,517,519,551,613 'client.bot':562 'client.bot_connection.create':496 'client.bot_connection.list':530 'client.bots':555 'client.bots.create':131 'client.bots.delete':283 'client.bots.get':186 'client.bots.list':216,243 'client.bots.update':260 'client.channels':559 'client.channels.create':306,343,394 'client.channels.get':429 'client.channels.list':447 'client.direct':567 'client.email':573 'client.host':580 'client.operations':577 'communic':633 'configur':18,293,561,686 'conn':544 'conn.name':550 'connect':39,484,487,495,506,510,527,529,546,549,563,565,684 'connectionset':493,512 'connectionsettingproperti':494,516 'convers':162 'cor':688 'creat':15,86,179,486 'credenti':74,78,79,106,110,111 'criteria':754 'crud':557 'custom':612 'default':368,419 'defaultazurecredenti':67,75,103,107,638 'delet':280 'describ':706,722 'descript':160,277,279,588 'detail':183,426 'develop':647 'direct':331,463,569,610,672 'directlinechannel':339,355,361,441,461,609 'directlinechannelproperti':340,363 'directlinesit':341,365 'display':155,272 'email':574,631,632 'emailchannel':630 'embedd':618 'enabl':328,371,375,379,422,663 'endpoint':165,203 'environ':53,734 'environment-specif':733 'execut':701 'expert':739 'f':177,197,202,206,230,250,475,480,548 'f0':148,589,644 'facebook':627 'facebookchannel':626 'fals':376 'free':149,590 'get':181,424 'global':144,322,359,410,514 'graph':509 'graph-connect':508 'group':61,119,123,133,136,188,191,213,219,221,224,262,265,285,288,308,311,345,348,396,399,431,434,451,454,498,501,535,538 'hasattr':467 'host':582 'id':58,81,85,113,117,171,518,525 'id/secret':657 'ident':52,679 'import':66,70,72,92,96,102,104,301,337,388,492 'includ':35 'input':748 'instal':40,43,49 'integr':608,614,625,629 'key':444,446,449,465,481,660,674 'keys.properties':468 'keys.properties.properties.sites':473 'kind':151 'limit':592,710 'line':332,464,568,570,611,673 'list':209,235,442,526 'locat':143,321,358,409,513 'manag':9,16,26,30,678 'match':719 'messag':593,598 'messeng':628 'method':554 'mgmt':3,46 'microsoft':605 'miss':756 'msa':169,172,655 'msteamschannel':303,318,324,604 'msteamschannelproperti':304,326 'multiten':175 'my-bot-app.azurewebsites.net':167 'my-bot-app.azurewebsites.net/api/messages':166 'my-chat-bot':126 'name':125,134,138,140,147,156,189,193,195,200,222,234,263,267,269,273,276,286,290,292,309,313,315,317,346,350,352,354,367,397,401,403,405,418,432,436,438,440,452,456,458,460,478,499,503,505,507,536,540,542 'need':665 'oauth':485,564 'oper':552,553,558,572,576,579,584 'option':586 'os':73,105 'os.environ':82,114,120 'output':728 'overview':709 'paramet':141,319,356,407,511 'period':675 'permiss':749 'pip':42,48 'possibl':681 'practic':635 'print':176,196,201,205,229,249,474,479,547 'product':652 'proper':687 'properti':153,270,323,325,360,362,411,413,469,515 'provid':524 'purpos':603 'py':5 'python':12,29,63,89,184,214,240,258,282,298,334,385,427,445,489,528 'reduc':667 'requir':747 'resourc':22,34,60,118,122,132,135,137,187,190,192,212,218,220,223,261,264,266,284,287,289,307,310,312,344,347,349,395,398,400,430,433,435,450,453,455,497,500,502,534,537,539 'review':740 'rotat':671 's1':594,650 'safeti':750 'scope':521,721 'sdk':10,27 'secret':520 'secur':658 'servic':8,21,25,33,523,533 'set':488,566,581,583 'site':364,366,369,415,417,420,471,476 'site.key':482 'site.site':477 'skill':697,713 'skill-azure-mgmt-botservice-py' 'sku':99,145,146,207,585,587,645 'slack':622,623 'slackchannel':621 'source-sickn33' 'specif':735 'standard':595 'start':642 'stop':741 'store':654 'subscript':57,80,84,112,116,239 'substitut':731 'success':753 'surfac':669 'task':717 'team':296,606,607 'test':737 'tier':150,591,596 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':726 'true':329,372,380,423 'type':174,600 'unlimit':597 'updat':256,274,278 'upgrad':648 'use':13,637,659,677,695,711 'user.read':522 'v1':374 'v3':378 'valid':736 'variabl':54 'vault':661 'web':382,616,619,690 'webchatchannel':390,406,412,615 'webchatchannelproperti':391,414 'webchatsit':392,416 'widget':620 'workflow':703 'workspac':624","prices":[{"id":"2709fd6a-5fac-4591-8566-d8107801bfd8","listingId":"16b5a767-542d-49c7-b1d3-14234ffe48d9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:32:45.770Z"}],"sources":[{"listingId":"16b5a767-542d-49c7-b1d3-14234ffe48d9","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-mgmt-botservice-py","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-mgmt-botservice-py","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:45.770Z","lastSeenAt":"2026-04-24T18:50:32.115Z"}],"details":{"listingId":"16b5a767-542d-49c7-b1d3-14234ffe48d9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-mgmt-botservice-py","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"d1f0e54957a1abc886d408c3a86de4a47e59bc9f","skill_md_path":"skills/azure-mgmt-botservice-py/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-mgmt-botservice-py"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-mgmt-botservice-py","description":"Azure Bot Service Management SDK for Python. Use for creating, managing, and configuring Azure Bot Service resources."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-mgmt-botservice-py"},"updatedAt":"2026-04-24T18:50:32.115Z"}}