Microsoft Graph API 是一個 RESTful 的 Web API,可讓您存取 Microsoft Cloud 服務資源。 註冊應用程式並取得使用者或服務的驗證權杖之後,您就可以對 Microsoft Graph API 提出要求。
藉由本專案建立自動化觸發 Microsoft Graph API 機器人伺服器,滿足微軟 Office365 開發者訂閱續約條件並自動續約,該機器人會根據組態檔的設定排成觸發 Microsoft Graph API。
應用: Office365 開發者訂閱 😘
Ubuntu | Windows | MacOS | |
---|---|---|---|
master | |||
develop | |||
hotfix | |||
document | |||
release |
master | develop | hotfix | document | release | |
---|---|---|---|---|---|
CodeQL | |||||
Coverage |
Github | Docker | |
---|---|---|
Publish |
範例文件: appsettings.json.example
{
"JoinBotMessage": "歡迎使用 Microsoft Graph Bot",
"Cron": "0 */4 * * *",
"CheckVerCron": "0 */12 * * *",
"PushResultCron": "0 0 * * *",
"AdminPassword": "P@ssw0rd",
"DeleteDelayTime": 30000,
"Telegram": {
"Token": "1119104861:AAH4D1-ZdtwvFPeQARLJAdhBYPA1xK7px08"
},
"MSSQL": {
"Host": "mssql",
"Port": 1433,
"User": "sa",
"Password": "P@ssw0rd",
"DataBase": "MicrosoftGraphBot"
},
"API": {
"NumberOfServiceCall": 2,
"NumberOfMethodCall": 1
}
}
配置項 | 說明 | |
---|---|---|
JoinBotMessage | 使用者第一次與 Bot 建立聯繫時,Bot的問候語 | |
Cron | Api 排程觸發的頻率,請參考 Crontab 格式 | |
CheckVerCron | 檢查 Bot 是否有新版本的頻率,請參考 Crontab 格式 | |
PushResultCron | 推播使用者呼叫 API 結果的頻率,請參考 Crontab 格式 | |
AdminPassword | 管理者密碼,與 Bot 溝通後,輸入此密碼可取得管理者權限 | |
DeleteDelayTime | 任務執行完畢,刪除任務產生的垃圾資料前等待的時間 | |
Telegram | Token | Telegram bot token,請與 Telegram bot father 聊天建立 Telegram bot 並取得 Token |
MSSQL | Host | SQL server 主機位置 (備註:使用 Docker compose 在 MSSQL 項不需要做任何更改) |
Port | SQL server port | |
User | SQL server 使用者 | |
Password | SQL server 使用者的密碼 | |
DataBase | 資料庫名稱 | |
API | NumberOfServiceCall | 每次呼叫 API 時,呼叫 API 種類數量的上限 例如: Outlook API (備註: 0 為所有 API 種類) |
NumberOfMethodCall | 某個 API 種類,呼叫 API 數量的上限 例如: List messages (備註: 0 為某個 API 種類中,所有的 API) |
至 Github Release 下載最新的 appsettings.json(應用程式配置文件),編輯其內容。 備註: [Telegram:Token] 請改成自己 Bot 的 Token。
- 至 Github Release 下載最新的 docker.tar.gz,並解壓縮文件
- 安裝 Docker
-
Windows
- 開啟 Powershell,並切換至 docker.tar.gz 解壓縮後的目錄
- 第一次執行需要建立必要資料夾
PS C:\docker> .\CreateContainerFolder.ps1
- 將 appsettings.json 移動至 docker 資料夾下的 bot 資料夾內
- 編輯 appsettings.json 文件的內容
- 建立並啟動容器
PS C:\docker> docker-compose up -d
-
Linux & MacOS
- 切換至 docker.tar.gz 解壓縮後的目錄
- 第一次執行需要建立必要資料夾
root@docker_server:~/docker$ ./CreateContainerFolder.sh
- 將 appsettings.json 移動至 docker 資料夾下的 bot 資料夾內
- 編輯 appsettings.json 文件的內容
- 建立並啟動容器
root@docker_server:~/docker$ docker-compose up -d
- 自行安裝 SQL server
- 編輯 appsettings.json 內 MSSQL 配置項的配置
-
Windows(x64):
- 至 Github Release 下載最新的 win-x64.zip,並解壓縮文件
- 執行 MicrosoftGraphAPIBot.exe
-
Linux(x64):
- 至 Github Release 下載最新的 linux-x64.zip,並解壓縮文件
- 執行 MicrosoftGraphAPIBot
root@server:~/MicrosoftGraphAPIBot$ ./MicrosoftGraphAPIBot
-
MacOS(x64):
- 至 Github Release 下載最新的 osx-x64.zip,並解壓縮文件
- 執行 MicrosoftGraphAPIBot
root@server:~/MicrosoftGraphAPIBot$ ./MicrosoftGraphAPIBot
- 檢查 appsettings.json(應用程式配置文件) 是否需要增加或刪除欄位
- 更新程式
- Docker
docker-compose down docker-compose pull docker-compose up -d
- 其它: 至 Github Release 下載最新版本的程式
- List messages
- Create Message
- Get message
- Update message
- Delete message
- message: send
- List children of a driveItem
- Create a new folder in a drive
- Update DriveItem properties
- Delete a DriveItem
- Move a DriveItem to a new folder
- Create a sharing link for a DriveItem
- Accessing shared DriveItems
- List sharing permissions on a driveItem
- Get sharing permission for a file or folder
- Update sharing permission
- Delete a sharing permission from a file or folder
- Get contact
- Create Contact
- Update contact
- Delete contact
請至 ReleaseNotes 資料夾查看變更紀錄。
我們將貢獻分為3類:
-
提出功能需求,但無撰寫程式能力
- 開啟新的 issue,並使用 功能要求 模板
-
提出錯誤報告,但無撰寫程式能力
- 開啟新的 issue,並使用 錯誤報告 模板
-
有撰寫程式能力者
- 請參考 Contributing.md
- C#
- Dependency injection
- Entity Framework Core
- Microsoft Graph API
- Telegram API
- Hangfire (排程)