/ms_graph_docker

use E5 graph apis

Primary LanguagePythonMIT LicenseMIT

ms_graph_docker

use E5 graph apis

使用方法

安装 docker compose

先安装curl:sudo apt install -y curl sudo yum install -y curl

# 国内
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
# 国际
bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/DockerInstallation.sh)

创建容器

mkdir -p /opt/ms_graph_docker/
cd /opt/ms_graph_docker/
wget https://fastly.jsdelivr.net/gh/comdotwww/ms_graph_docker@latest/docker-compose.yml
docker rm -f ms_graph_docker
docker compose pull

然后根据自己需要编辑docker-compose.yml里的environment内容,其中:

TZ: "Asia/Shanghai" # 必填,默认"Asia/Shanghai"
TG_BOT_TOKEN: "" # 选填 telegram bot token,可通过 t.me/botfather 获取
TG_SEND_ID: "11111"  # 选填,如填写,则TG_BOT_TOKEN也要填写 telegram bot 主人的id 需要先给 bot 发一条消息
CLIENT_ID: "client_id" # 必填
CLIENT_SECRET: "client_secret" # 必填
TOKEN_FIRST: "" #必填
PROXY_URL: "null"  # 选填 代理 url ,如反向代理地址 http://example.com/ 则填写 example.com 设置方法 https://www.hostloc.com/thread-805441-1-1.html
IS_API_URLS_EXTEND: "false" # 可选 是否调用补充 api 接口

可以先手动执行一次,看看是否成功

cd /opt/ms_graph_docker/
docker compose up -d

查看日志,看看是否成功

docker logs -f ms_graph_docker

(可选)补充 API 授权

# 下面的 api 按需授权
    # graph
    graph_api_urls_extend = [
        r'/me/calendars',  # Calendars.Read
        r'/me/contacts',  # Contacts.Read
    ]
    other_api_urls_extend = [
        # Power BI 服务
        r'https://api.powerbi.com/v1.0/myorg/apps',  # Tenant.Read.All
    ]

周期执行

编辑 cron 周期执行表达式,如:

0 3,4,5 * * 1-5  cd /opt/ms_graph_docker/;docker compose up -d

意思是:从星期一到星期五,每周的第 3、4 和 5 小时后的第 0 分钟执行

配置信息获取

  1. 前往 https://portal.azure.com/ 登陆管理员账号。(这里可以把语言改成中文)。
  2. 首页找到Azure Active Directory(如果没有可以搜索或者点击这里)然后点击应用注册-> +新注册
  3. 名称随便填写,受支持的账户类型选择任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户重定向URI填写:http://localhost:53682/
  4. 注册成功后,将应用程序(客户端)ID记录下来,后面会用到!
  5. 点击左侧菜单API权限 -> 添加权限 -> Microsoft Graph-> 选中委托的权限。以下权限分别搜索勾选!勾选完点击按钮添加权限
  6. 在API权限页面,如果界面上有代表xxx授予管理员同意按钮,一定要点一下,然后同意授权!如果没有这个按钮,就不用管了!
  7. 点击左侧菜单证书和密码-> +新客户端密码,说明随便填,截止期限选最长的!点击添加按钮。然后页面下方可见新建的密码,然后将复制记录下来!后面会用到!
  8. 利用rclone来获取 Token。以 Windows 为例: Windows下载rclone(rclone下载地址)到电脑某个盘符下,在rclone.exe同目录中,按Shift+鼠标右键,选择在【此处打开cmd窗口】或【在此处打开powershell窗口】 然后在弹出的窗口执行命令!(根据第4步和第7步的结果)
rclone.exe authorize "onedrive" "应用程序(客户端)ID" "应用程序密码"

执行命令后弹出网页登陆管理账号,然后接受授权即可! 授权成功后,窗口弹出得到的Token信息!复制内容。仅复制 【Paste the following into your remote machine --->】开头【<---End paste】结尾的中间部分内容! 用这个在线转化工具,提取refresh_token的值。

  1. 最后填入配置信息