{"id":13547108,"url":"https://github.com/bitjerry/Microsoft-365-bot","last_synced_at":"2025-04-02T19:32:32.027Z","repository":{"id":58872181,"uuid":"519702453","full_name":"bitjerry/Microsoft-365-bot","owner":"bitjerry","description":"Manage the Microsoft 365 Global by the telegram bot","archived":false,"fork":false,"pushed_at":"2023-06-02T15:30:32.000Z","size":604,"stargazers_count":30,"open_issues_count":0,"forks_count":14,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-03T15:38:32.822Z","etag":null,"topics":["bot","microsoft","microsoft-graph","microsoft-graph-api","microsoft365","microsoft365apps","office","office-365","office365","python","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitjerry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-07-31T06:56:17.000Z","updated_at":"2024-08-14T09:20:25.000Z","dependencies_parsed_at":"2024-01-14T02:41:22.704Z","dependency_job_id":"74211200-b222-40e3-bcad-401a313586c7","html_url":"https://github.com/bitjerry/Microsoft-365-bot","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitjerry%2FMicrosoft-365-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitjerry%2FMicrosoft-365-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitjerry%2FMicrosoft-365-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitjerry%2FMicrosoft-365-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitjerry","download_url":"https://codeload.github.com/bitjerry/Microsoft-365-bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246880235,"owners_count":20848829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","microsoft","microsoft-graph","microsoft-graph-api","microsoft365","microsoft365apps","office","office-365","office365","python","telegram","telegram-bot"],"created_at":"2024-08-01T12:00:51.091Z","updated_at":"2025-04-02T19:32:31.226Z","avatar_url":"https://github.com/bitjerry.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# \u003ca href=\"\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/bitjerry/Microsoft-365-bot@main/img/4.ico\" align=\"left\" height=\"48\" width=\"48\" \u003e\u003c/a\u003e Microsoft 365 bot\n\n\n[![forthebadge](https://forthebadge.com/images/badges/made-with-python.svg)](https://forthebadge.com)\n\nManage the Microsoft 365 Global by the telegram bot\n\nRead in other languages: English | [简体中文](README.zh_cn.md)\n\n**Features**\n- Manage multiple Microsoft 365 global accounts by the bot\n- Batch add or export apps\n- Add or delete domain names\n- Add, delete, check or modify users\n- View subscription information, assign or revoke licenses for users\n- View organization information\n- View role information, assign or revoke roles for users\n- Multilingual adaptation\n- Functions in Microsoft graph API will be added in the future\n\n\n---\n### 🎉Preview\n\n---\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/bitjerry/Microsoft-365-bot@main/img/bot/start.png\" alt=\"screenshots\"\u003e\u003c/p\u003e\n\n[👉More screenshot \u003e\u003e\u003e](docs/en_us/bot.md)\n\n### 🚀Create app\n\n---\n\u003ehttps://aad.portal.azure.com\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/bitjerry/Microsoft-365-bot@main/img/1.png\" alt=\"screenshots\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/bitjerry/Microsoft-365-bot@main/img/2.png\" alt=\"screenshots\"\u003e\u003c/p\u003e\n\n### Permissions\n\n---\n\u003e Organization.Read.All, Organization.ReadWrite.All  \n\u003e RoleManagement.Read.Directory, RoleManagement.ReadWrite.Directory  \n\u003e User.Read.All, User.ReadWrite.All  \n\u003e Directory.Read.All, Directory.ReadWrite.All  \n\u003e Directory.AccessAsUser.All\n\n### 🤖Create a Robot\n\n---\n\u003ca href=\"https://t.me/BotFather\"\u003e@BotFather\u003c/a\u003e \n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://cdn.jsdelivr.net/gh/bitjerry/Microsoft-365-bot@main/img/3.png\" alt=\"screenshots\"\u003e\u003c/p\u003e\n \n\n#### Commands\n```\nstart - Start Robot\nlog - Get the log of the robot\nkey -Protect app data\nmyapp - Specify an app\nnewapp - Create a new app\nclearapp - Clear all app\naddapps - Add more apps\nexportapps - Batch add app\nlistdomain - List and manage domain names\nadddomain - Add a domain name\ngetorg - Get organization information\ngetrole - Get role information\ngetsub - Get subscription information\ngetuser - Get user information\ngetuserbyname - Gets user information (specifies user by username)\nsearchuser - Get user information (by fuzzy search with username)\naddUser - Add a user\ncancel - Cancel the current operation\n```\n\n### ⚙️Config\n\n---\n\u003e Considering one-button deployment, configurations are all in the form of environment variables.   \n\n[❓Instructions \u003e\u003e\u003e](docs/en_us/config.md)\n\n### 🥼Runtime\n\n---\n- Database: SQL\n- python 3.10\n\n\n### 🔨Deploy\n\n---\n#### Heroku Deploy:\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)\n\n#### Others:\n\n[❓Fly.io \u003e\u003e\u003e](docs/en_us/fly_io.md)\n\n[❓VPS \u003e\u003e\u003e](docs/en_us/vps.md)\n\n[❓Docker \u003e\u003e\u003e](docs/en_us/docker.md)\n\n### 🏃Run\n\n---\nThe bot has two modes of work and does not require manual activation.\n\n1. *webhook*: automatically enabled if a webhook link is configured in an environment variable\n2. *polling*: Use this method automatically if you do not configure a webhook link\n\n\u003eWe recommend using *webhook* because *polling* constantly pulls out messages to the telegram server, which is relatively resource intensive\n\n### 📝Changelog\n\n- 2.0\n  - Optimize project structure\n  - Compatible with all kinds of databases through ORM\n  - Update database encryption mode\n  - Add operation password protection\n  - The operation of manually enabling `webhook` is canceled\n  - Automatic selection of startup mode\n  - Operation on domain name\n  - Batch addition and deletion of apps\n- 2.1\n  - Fix bug\n- 2.2\n  - Add disable/enable function for users\n- 2.3\n  - Improve the management of security keys\n  - Improve English documents\n  - Add user interface preview\n  - Fixed the user module data inconsistency bug\n  - Optimized code structure, and more detailed comments\n- 2.4\n  - Fix the bug deploy on fly.io by GitHub Action\n- 2.5\n  - Fix the bug for table creating\n  - Fix the bug that modify app information\n  - Add the support for docker\n\n### 📖More\n\n- [Security](docs/en_us/security.md)\n- [Document](docs/en_us/dev.md)\n- [FAQ](docs/en_us/error.md)\n\n### ⚖️License\n\n---\nMIT © [bitjerry](/LICENSE)\n  \n*2022/9/1*\n*Mr.lin*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitjerry%2FMicrosoft-365-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitjerry%2FMicrosoft-365-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitjerry%2FMicrosoft-365-bot/lists"}