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 分钟执行
配置信息获取
- 前往 https://portal.azure.com/ 登陆管理员账号。(这里可以把语言改成中文)。
- 首页找到
Azure Active Directory
(如果没有可以搜索或者点击这里)然后点击应用注册-> +新注册 名称
随便填写,受支持的账户类型
选择任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户
,重定向URI
填写:http://localhost:53682/
。- 注册成功后,将
应用程序(客户端)ID
记录下来,后面会用到! - 点击左侧菜单
API权限
->添加权限
->Microsoft Graph
-> 选中委托的权限
。以下权限分别搜索勾选!勾选完点击按钮添加权限
。 - 在API权限页面,如果界面上有
代表xxx授予管理员同意
按钮,一定要点一下,然后同意授权!如果没有这个按钮,就不用管了! - 点击左侧菜单
证书和密码
->+新客户端密码
,说明
随便填,截止期限
选最长的!点击添加
按钮。然后页面下方可见新建的密码,然后将值
复制记录下来!后面会用到! - 利用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
的值。
- 最后填入配置信息