在这个脚本出现之前就已经有很多类似的脚本了,而调用API的原因为了模拟有开发者在使用订阅免得微软不自动续费
当然,到今日微软的自动续费机制依然是个迷,所以我分享这个脚本的主要是因为我透过此脚本续费成功了。
效果演示
Telegram 频道: https://t.me/+mSLMW23v16AxNTA9
从 3月1日 开始执行到现在
续费原理
引用自 https://ednovas.gitbook.io/e5
使用E5开发者账号注册应用,并通过注册的应用调用Microsoft Graph API(调用Microsoft Graph API是判定开发活动的一种)来伪装开发者活动(简单来说就是假装你是开发者,然后调用API进行E5续订)
更多详细的原理可自行使用搜索引擎搜索 “E5 调用 API 原理“
准备材料
- 一个 Cloudflare 账号
- 一个 E5 账号
注意,下面演示的全部密钥和ID都是临时的,在此文章发表前已全部失效。
创建 Cloudflare Workers
随便填一个名字即可
然后按 继续使用 Free 计划
即可
成功后,你应能看见以下画面
创建一个服务
点击 创建服务
并输入一个名字,没有限制
选择 HTTP 处理程序
然后点击 创建服务
关闭 Routing
前往触发器
,并选择 禁用路由
,然后选择 取消部署
创建微软应用程序
在 应用注册
页面中,点击 新注册
名称 | 值 |
---|---|
名称 | API Call Cloudflare |
受支持的帐户类型 | 仅此组织目录(仅 <组织名称> - 单一租户)中的帐户 |
重定向 URI (可选) | Web , http://localhost:42791/ |
填写后,按 注册
创建密钥
前往 证书和密码
页面,点击 `新客户端密码
截止期限最大值为两年,如需要更长时间请自行透过搜索引擎查看如何调整为永久
名称 | 值 |
---|---|
说明 | Workers |
截止期限 | 24 个月 |
你应该能看到 值
和 机密 ID
,请保存 值
名称 | 值 |
---|---|
值 | S_N8Q~K6gj3hWVx36G.JuCE0f8boxoXUH7Gf-cSe |
添加权限
前往 API 权限
,根据下图中的 API 添加权限
权限名称 | URL |
---|---|
Directory.Read.All | https://graph.microsoft.com/Directory.Read.All |
Directory.ReadWrite.All | https://graph.microsoft.com/Directory.ReadWrite.All |
Files.Read.All | https://graph.microsoft.com/Files.Read.All |
Files.ReadWrite.All | https://graph.microsoft.com/Files.ReadWrite.All |
Mail.Read | https://graph.microsoft.com/Mail.Read |
Mail.ReadWrite | https://graph.microsoft.com/Mail.ReadWrite |
MailboxSettings.Read | https://graph.microsoft.com/MailboxSettings.Read |
MailboxSettings.ReadWrite | https://graph.microsoft.com/MailboxSettings.ReadWrite |
offline_access | https://graph.microsoft.com/offline_access |
Sites.Read.All | https://graph.microsoft.com/Sites.Read.All |
Sites.ReadWrite.All | https://graph.microsoft.com/Sites.ReadWrite.All |
User.Read | https://graph.microsoft.com/User.Read |
User.ReadWrite.All | https://graph.microsoft.com/User.ReadWrite.All |
添加后,按一下 代表 <组织名称> 授予管理员同意
获取 refresh_token
前往 概述
,把 应用程序(客户端) ID
保存下来
名称 | 值 |
---|---|
应用程序(客户端) ID | 2d4599ba-57e1-44a3-9fcb-aa4e0d2e7755 |
请把 {{client_id}}
替换成 应用程序(客户端) ID
并在浏览器打开以下页面:
如果出现错误请再三检查URL是否输入正确,是否已经进行 url-encoded
https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id={{client_id}}&response_type=code&redirect_uri=http://localhost:42791&scope=https://graph.microsoft.com/offline_access
点击 接受
然后你会得到以下网址:
http://localhost:42791/?code=0.AXAAL9t9i7-ze0uADZmakODAWLqZRS3hV6NEn8uqTg0ud1VwABU.AQABAAIAAAD--DLA3VO7QrddgJg7Wevr9M5G7V4xymnWO2knhWvOk6aYPR4IlcbOq1D4Qt6nVa4gtz00NeYo1evTEKRUBk8STsarptgH-tFBPl9GfssTjgXJWra7_rgXIuezgNDsyaIxBU9BcmpUjIMw6_L4bp0JdJp57uJ9_qYvFvudptGXaWxwscypyGFopk_9q2Y2j1RuY17seLancbuRYzK_2ozTxwcAo3SFOYYDCEJZrRD1PgxJNqrDyW6j6eyNPwj9XnlOFyhtErJ6g5S2wKLonSIcWDE8ep6QJ5lTFPdLQm8B34kLzjC8y12kvGcdVPdb_WCoIymM2Y-cTDSlhhyCjB4uPVbsTei0tOvjl69byoR8dyUlwRYNJSFrdV79OJpJ3HntcOIqSaXqiOw-IqIRQ7ybijZzNSVzTWIorzGNOc-QJAen82o6d9oTkTr_QQ8QPWH53a2WUFMq7YQCZhsUYw_sbbIlbycmDiQQO41Neut1RniSJ8yG0LwPCh5XJSakhYV1KDHUGXnUrbZLoR8390nEL8scxqdMknC3-Pu4oR2-nTRMModj57hDCo4unmRuQs4WvfWYL6R-3DzDNVBgtHQ4TgGynXqqNDaBUaCH8hz-YKoeI3ynHI1GtDf_N2RoOg1UnisVyIjbyrjjp3IPAd_1IAA&session_state=52fd633e-7b30-4209-bb16-5d2873621057##
Key | Value |
---|---|
code | 0.AXAAL9t9i7-ze0uADZmakODAWLqZRS3hV6NEn8uqTg0ud1VwABU.AQABAAIAAAD--DLA3VO7QrddgJg7Wevr9M5G7V4xymnWO2knhWvOk6aYPR4IlcbOq1D4Qt6nVa4gtz00NeYo1evTEKRUBk8STsarptgH-tFBPl9GfssTjgXJWra7_rgXIuezgNDsyaIxBU9BcmpUjIMw6_L4bp0JdJp57uJ9_qYvFvudptGXaWxwscypyGFopk_9q2Y2j1RuY17seLancbuRYzK_2ozTxwcAo3SFOYYDCEJZrRD1PgxJNqrDyW6j6eyNPwj9XnlOFyhtErJ6g5S2wKLonSIcWDE8ep6QJ5lTFPdLQm8B34kLzjC8y12kvGcdVPdb_WCoIymM2Y-cTDSlhhyCjB4uPVbsTei0tOvjl69byoR8dyUlwRYNJSFrdV79OJpJ3HntcOIqSaXqiOw-IqIRQ7ybijZzNSVzTWIorzGNOc-QJAen82o6d9oTkTr_QQ8QPWH53a2WUFMq7YQCZhsUYw_sbbIlbycmDiQQO41Neut1RniSJ8yG0LwPCh5XJSakhYV1KDHUGXnUrbZLoR8390nEL8scxqdMknC3-Pu4oR2-nTRMModj57hDCo4unmRuQs4WvfWYL6R-3DzDNVBgtHQ4TgGynXqqNDaBUaCH8hz-YKoeI3ynHI1GtDf_N2RoOg1UnisVyIjbyrjjp3IPAd_1IAA |
session_state | 52fd633e-7b30-4209-bb16-5d2873621057 |
如果得到错误回应请参考微软的错误响应
在 Postman 中前往 Variables 然后填入要求的内容,记得按 Save
保存
如果没有 Postman 账号可以注册一个,很简单
接着,前往 Step 2
并按一下 Send
成功后,回应 200 OK 并返回 JSON内容
Key | Value |
---|---|
token_type | Bearer |
scope | profile openid email https://graph.microsoft.com/User.Read |
expires_in | 3599 |
access_token | eyJ... |
refresh_token | 0.AX... |
弃 access_token
而取 refresh_token
者也。
添加账号
回到 Cloudflare,前往 Workers
-> KV
并 创建命名空间
建议格式为 MS_<你的组织名称>
以方便管理
添加完成后,点击 查看
添加以下变量
密钥 | 值 |
---|---|
config_id | <应用程序(客户端) ID (client_id ) 值> |
config_key | <机密 ID 中的值 > |
refresh_token | <refresh_token 的值> |
绑定 KV 命名空间
完成后,前往 Workers
-> 概述
-> 你的 Workers
-> 设置
并点击 添加绑定
完成后点击 保存
添加脚本
回到 资源
,点击 快速编辑
并粘贴以下内容
代码
可修改的部分:
值 | 说明 |
---|---|
botToken | 电报的机器人回报,如果不需要可以设置为空 "" |
chatId | 电报的频道/个人对话 ID |
NAMESPACES | Cloudflare 的命名空间,就是刚才设置的那个 |
保存后返回上一页
设置定时
到 触发器
,选择 添加 Cron 触发器
按照以下图片设置即可
如一切正常,机器人应该会每 15分钟
发送一次信息,见效果演示
参考资料
版权声明:《 透过 Cloudflare Workers 实现微软E5的自动调用 API 》为吐司猫原创文章,转载请注明出处!
最后编辑:2022-5-26 17:05:38
提示:本文章评论功能已关闭