Egg's Fragrance Memory.淡淡香憶

  • 首頁
  • FB粉專
Egg's Fragrance Memory.淡淡香憶
請多多支持!
  1. 首頁
  2. 新聞
  3. 正文

打造你的專屬行程祕書:自動化 Outlook 行事曆 Telegram 提醒機器人

2025-01-28 299點熱度 0人點讚 0條評論

目錄

  • 專案介紹:Outlook 行事曆 Telegram 提醒機器人
  • 專案核心功能
    • 自動獲取當日行程
    • 行程詳細資訊
    • 訊息排版
    • 錯誤處理與日誌記錄
    • 行程排序
    • 跨平台支援
    • 重複性活動支援
    • 跨日活動支援
    • 全天活動支援
    • 時區處理
    • 開發動機
    • 技術選擇
    • 功能實現
      • Microsoft Graph API
      • Telegram Bot API
      • 排程
      • 時區處理
      • 錯誤處理
      • 跨平台支援
    • 持續優化
  • 如何使用
    • 安裝需求
    • 詳細設定步驟
      • 安裝所需套件
      • 設定 Microsoft Graph API (Azure)
      • 設定 Telegram Bot
      • 設定環境變數
    • 首次執行
    • 後續執行
    • 注意事項
    • 修改提醒時間
  • 專案優勢
    • 自動化提醒
    • 跨平台支援
    • 時區準確
    • 完整功能
    • 易於設定

打造你的專屬行程祕書:自動化 Outlook 行事曆 Telegram 提醒機器人

專案介紹:Outlook 行事曆 Telegram 提醒機器人

這個專案是一個使用 Python 撰寫的自動化機器人,主要功能是每天早上透過 Telegram 發送 Microsoft Outlook 行事曆的行程提醒。它能幫助您無需手動查看行事曆,就像擁有一個專屬的行程祕書。

專案核心功能

  • 自動獲取當日行程

機器人會自動從 Microsoft Outlook 行事曆中抓取當天的所有行程

  • 行程詳細資訊

顯示每個事件的時間(GMT+8,台北時區)、標題和地點

  • 訊息排版

支援 HTML 格式的訊息排版,讓訊息更易讀

  • 錯誤處理與日誌記錄

具備完整的錯誤處理和日誌記錄功能,方便追蹤問題

  • 行程排序

行程會按時間順序自動排序

  • 跨平台支援

支援跨平台認證和 Token 持久化,方便在不同環境使用

  • 重複性活動支援

能夠正確處理並顯示重複性活動

  • 跨日活動支援

能夠正確處理並顯示跨日活動

  • 全天活動支援

能夠正確處理並顯示全天活動

  • 時區處理

所有時間均以 GMT+8(台北時間)顯示

專案設計流程:

  • 開發動機

由於 Outlook 行事曆每次設定提醒都需要單獨設定,且每天都要打開行事曆確認行程,為了節省時間和精力,決定開發此自動化提醒機器人

  • 技術選擇

選擇 Python 作為開發語言,因其易用性和豐富的套件支援

  • 功能實現

    • Microsoft Graph API

使用 Microsoft Graph API 獲取 Outlook 行事曆的行程資訊

    • Telegram Bot API

使用 Telegram Bot API 發送訊息

    • 排程

使用 schedule 套件設定每天早上 6 點自動發送提醒

    • 時區處理

程式碼已優化時區轉換邏輯,確保時間顯示為 GMT+8

    • 錯誤處理

增加了錯誤處理和日誌記錄,以方便追蹤問題

    • 跨平台支援

程式碼支援 Windows 和 Linux 系統,並有各自的說明文件

  • 持續優化

    • 程式碼不斷更新,以確保功能穩定和效率
    • 優化了事件過濾邏輯,移除冗餘的時間範圍檢查
    • 修正了重複性活動和跨日活動的顯示問題
    • 改進了時區轉換的邏輯
    • 使用 calendarView 端點查詢事件,提供更好的事件展開支援

如何使用

  • 安裝需求

    • Python 3.7 或更高版本.
    • pip(Python 套件管理器)
  • 詳細設定步驟

    • 安裝所需套件

pip install -r requirements.txt

    • 設定 Microsoft Graph API (Azure)

      • 前往 Azure Portal 註冊新的應用程式
      • 設定應用程式平台為「桌面應用程式」,並設定重新導向 URI 為 http://localhost:53473
      • 取得 CLIENT_ID、TENANT_ID 和 CLIENT_SECRET
      • 設定 API 權限,選擇「Microsoft Graph」,並給予 Calendars.Read 權限
    • 設定 Telegram Bot

      • 在 Telegram 中搜尋 @BotFather 並創建新的機器人
      • 取得 TELEGRAM_BOT_TOKEN
      • 搜尋 @userinfobot 並發送訊息,取得 TELEGRAM_CHAT_ID
    • 設定環境變數

      • 複製 .env.example 檔案並重新命名為 .env
      • 在 .env 檔案中填入剛才取得的資訊
  • 首次執行

    • 執行程式 python calendar_reminder.py
    • 當提示選擇授權方式時,選擇選項 1
    • 瀏覽器會自動開啟授權頁面,登入 Microsoft 帳號並同意授權.
    • 從重定向的 URL 複製完整網址並貼回程式
    • Token 會自動儲存在 token.json 檔案中
  • 後續執行

    • 程式會自動使用已儲存的 Token,過期時會自動更新
    • 可將 token.json 複製到其他環境使用
  • 注意事項

    • 請確保所有環境變數都已正確設定
    • 程式需要持續運行才能發送提醒,可使用工作排程器、screen、tmux 或部署到雲端服務
    • 時區已設定為 GMT+8(台北時間)
    • Token 檔案 (token.json) 包含敏感資訊,請妥善保管
    • 首次設定時請確保選擇「桌面應用程式」作為應用程式平台類型
    • Linux 系統的使用者請參考 Linux 版本說明文件
  • 修改提醒時間

如果需要修改提醒時間,可以在程式碼中修改 schedule.every().day.at("06:00") 的時間設定

專案優勢

  • 自動化提醒

無需手動查看行事曆,節省時間

  • 跨平台支援

Windows 和 Linux 系統皆可使用

  • 時區準確

所有時間均以台北時區顯示

  • 完整功能

支援重複性活動、跨日活動和全天活動

  • 易於設定

提供詳細的設定步驟,方便使用者快速上手

 

這個專案不僅能有效提升您的時間管理效率,還能讓您不再錯過任何重要行程

本作品採用 知識共享署名-相同方式共享 4.0 國際許可協議 進行許可
標籤: Calendar Outlook Telegram Bot 機器人 自動化
最後更新:2025-01-28

EGG

這個人很懶,什麽都沒留下

點讚
< 上一篇

文章評論

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回覆

贊助我
聯絡我

文章邀約請寄至:[email protected]

寄信或商品試用請寄至:台南市南區大同路郵局第81號信箱 淡淡香憶收

COPYRIGHT © 2023 Egg's Fragrance Memory.淡淡香憶. ALL RIGHTS RESERVED.

pixel