昨天又介绍了一次E5试用订阅!目前已知的经常使用Microsoft 365 API能实现订阅的续订!
本文介绍一下不用“充元宝”,全靠手打的,散人全自动刷API方案!!
原理:利用免费的Github Action 定期刷 Microsoft 365 API!不用服务器搭建!
准备工作
1)E5管理账号
2)Github账号(不建议用常用账号)
3)记事本(用于记录ID密码!)
开源项目
https://github.com/wangziyingwen/AutoApiSecret
项目说明中有完整的教程!博主按照教程撸了一遍!然后补全图片和完善文案!
操作步骤
申请试用
移步文章:免费申请Microsoft 365 E5开发者试用订阅教程
获取Token
这里介绍完全自己!
1)前往 https://portal.azure.com/ 登陆E5管理账号注册应用。
首页找到【Azure Active Directory】(如果没有可以搜索)然后点击【应用注册】-> 【+新注册】!
2)【名称】 随便填写,受支持的账户类型 选择【任何组织目录(任何 Azure AD 目录 – 多租户)中的帐户】
【重定向URI】填写:http://localhost:53682/
然后点击【注册】
3)注册成功后,将【应用程序(客户端)ID】记录下来,后面会用到!
4)点击左侧菜单【API权限】-> 【添加权限】 -> 【Microsoft Graph】-> 选中【委托的权限】
以下权限分别搜索勾选!勾选完点击按钮【添加权限】
Files.Read.All Files.ReadWrite.All
Sites.Read.All Sites.ReadWrite.All
User.Read.All User.ReadWrite.All
Directory.Read.All Directory.ReadWrite.All
Mail.Read Mail.ReadWrite
MailboxSettings.Read MailboxSettings.ReadWrite
5)在API权限页面,如果界面上有【代表xxx授予管理员同意】按钮,一定要点一下,然后同意授权!
如果没有这个按钮,就不用管了!
6)点击左侧菜单【证书和密码】-> 【+新客户端密码】
【说明】随便填,【截止期限】随便选!点击【添加】按钮。
然后页面下方可见新建的密码,然后将【值】复制记录下来!后面会用到!
7)我们利用rclone来获取Token!
下载rclone(【rclone下载地址1】【rclone下载地址2】)到电脑某个盘符下,在rclone.exe同目录中,按Shift+鼠标右键,选择在【此处打开cmd窗口】或【在此处打开power shell窗口】
然后在弹出执行命令!
1 |
./rclone authorize "onedrive" "应用程序(客户端)ID" "应用程序密码" |
本文演示的ID和密码!
1 |
./rclone authorize "onedrive" "c33b7c34-2d87-4b89-89f0-469d6e78a55e" "P~0zNhn1e._BD.6~xxxxxxx~Ced9JR3" |
执行命令后弹出网页登陆E5管理账号,然后接受授权即可!
8)授权成功后,窗口弹出得到的Token信息!复制内容
仅复制 【Paste the following into your remote machine —>】开头【<—End paste】结尾的中间部分内容!
利用搜索引擎找一个【JSON在线格式】的网站,将复制的内容格式化一下。复制refresh_token值内容!不要双引号!
因为码农经常看一些JSON,我的Chrome安装了一个扩展 JSON-handle【安装地址】。很清晰看到我们要复制的内容!如图选中部分内容~!
保留该token,后面要用!获取Token部分到这里结束!
克隆项目
这里利用的是Github的私有项目来做,如果你认为无所谓可以直接fork原作者的项目!然后直接跳过本节!
1)登陆Github账号,新建项目( New repository)!
名称随便,可设置为私有(Private),想公开项目也行。
为了安全还是私有吧!
2)项目新建成功后,我们选择Import 导入一个项目!
项目地址:https://github.com/wangziyingwen/AutoApiSecret
或者导入:https://github.com/malaohu/AutoApiSecret
导入的过程略慢!需要多等等!
配置参数
1)在线编辑你项目里的1.txt 文件,将整个refresh_token覆盖粘贴进去(原内容不要保留)。
2)依次点击上栏 【Setting】-> 【Secrets】 -> 【Add a new secret】
分别新建:CONFIG_ID、CONFIG_KEY
替换你的ID 和 密码!一定要注意前面r 和 单引号!
CONFIG_ID
1 |
id=r'应用程序(客户端)ID' |
CONFIG_KEY
1 |
secret=r'应用程序密码' |
3)打开地址:https://github.com/settings/tokens 点击【Generate new token】
设置名字:GITHUB_TOKEN ,
勾选 repo , admin:repo_hook , workflow 等选项,点击按钮【Generate token】!
测试运行
点击一下Github项目的星星(Star)立马调用一次脚本,再点击上面的【Action】就能看到每次的运行日志,看看运行状况!
如图展示日志,说明成功啦!!3小时后再确认下是否自动运行了(ation里是否多出来几个),是的话就不用管了!
最后说明
1)复制各种ID,密码,Token的时候一定要多注意!多个空格,少个标点符号都导致无法运行!
2)项目设定每3小时自动运行一次,每次调用3轮。定时自动启动修改地方文件 .github/workflow/AutoApiSecret.yml(自行百度cron定时任务格式,最短每5分钟一次)私有仓库有限制谨慎修改!
3)无论怎么刷API也不能100%保证能续订服务!!!
4)自动运行会更新1.txt文件,会生成好多无用的提交记录,可能影响使用Github!
Github Action
Github Action 提供的虚拟环境: 2core CPU · 7 GB RAM 内存 · 14 GB SSD 硬盘空间
使用限制:
- 每个仓库只能同时支持20个 workflow 并行。
- 每小时可以调用1000次 GitHub API 。
- 每个 job 最多可以执行6个小时。
- 免费版的用户最大支持20个 job 并发执行,macOS 最大只支持5个。
- 私有仓库每月累计使用时间为2000分钟,超过后$ 0.008/分钟,公共仓库则无限制。
参考文献
https://blog.432100.xyz/index.php/archives/50/
https://github.com/features/actions
之前没问题, 最近一周出现错误
查看Push Changes 有红色叉:
Run ad-m/github-push-action@master
Error: Invalid status code '404' for url 'https://api.github.com/repos/xxll88/_AutoTeamData'
at IncomingMessage.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:14:21)
at IncomingMessage.emit (events.js:215:7)
at endReadableNT (_stream_readable.js:1184:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
We are currently unable to download the log. Please try again later.
nameError: name 'secret' is not defined
修改cron定时任务其实github里面有提示的,当你把光标移到cron那一行,会有一个浮窗告诉你这一句命令代表什么意思
修改1t为5t之后还是显示1t是因为修改只对修改后新增的用户生效,需要新建全局管理员然后登陆新管理员账号删除最开始的管理员账号,之后使用新创建的管理员账号,就ok了
为何我的项目有时间隔三小时,有时间隔6小时,7小时的也有,不是很稳定的刷新呢
厉害,第二次免费更新了。戒指到2021年3月!
onedrive的空间只有1T
test api keyerror refresh_tokeb错误
折腾了一晚上,已经搭建并运行成功
但是目前并未续期成功,剩余17天过期,看能不能续期成功,啥时候续期成功了
连做两个,一气呵成,现在就是看后面的结果了,谢谢分享
希望出个群晖的教程
大神你好,我按照你的教程做好了。在配置参数在线编辑项目里的1.txt 文件,将整个refresh_token覆盖粘贴进去(原内容不要保留)这个过程中,我无法把原内容删除,好像原内容也是一个refresh_token。 现在的问题就是在Auto Api Secret / build中,Test API前面是小红叉,请问怎么解决?谢谢了。
具体错误信息是啥?
我写了个asp .net core 环境的有需要可以自己下载发布(在appsettings.json文件简单配置就可以用) https://github.com/childedu/office.E5
大佬,可以问下吗,这一步./rclone authorize "onedrive" 提示不是内部或外部命令,也不是可运行的程序或批处理文件。这要怎么弄。
仔细看一下第7步,需要在rclone.exe同目录中,按Shift+鼠标右键,选择在【此处打开cmd窗口】或【在此处打开power shell窗口】
谢谢大佬,不会代码,只会看你教程。。试了好久才行
power shell窗口在前目录运行示例是:./rclone authorize "onedrive"
cmd窗口在前目录运行示例是:rclone authorize "onedrive"
重点要去到rclone .exe文件所在目录
谢谢大佬分享!!
这几天开始刷不了了,之前还正常的
Run failed for master (9c6f4f0)
Repository: wansyu/_AutoApiSecret
Workflow: Auto Api Secret
Duration: 31.0 seconds
Finished: 2020-08-08 00:46:23 UTC
View results
Jobs:
build failed (1 annotation)
小白一步步操作成功了,等最后看看有没有续期成功,感谢!
已成功搭建。 目前还未续期,剩余体验时间85天
辛苦辛苦,已经成功了,想问三个问题:
1. rclone成功后,还需要吗?是否可以在本地删掉?
2. Github这个一直调用,按着文章里说的,会不会因为时间等原因被停掉呀?
3. 调用别人的Github这个,如果往OneDrive里存东西,会有被看到的可能性吗?
小白不懂,求问,再次感谢。
1) rclone 为了获取token, 可删!
2)除非微软或者Github Action宕机!
3)私有项目,别人看不见。
谢谢谢谢,坐等结果了,但愿能成功。
大佬,想问一下,这个可以续期E3吗?想弄个带Visio或者project的。
这个订阅不支持Visio或Project吧
显示成功了,但愿能一直用
自动订阅邮件通知成功了,谢谢
请教下,这里报错没事吧?
Push changes
error: failed to push some refs to 'https://github.com/houjunyong/Action.git'
Error: Invalid status code: 1
at ChildProcess.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:9:19)
Error: Invalid status code: 1
at ChildProcess.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:9:19)
前几次错误,后来自己好了。
申请订阅 续订 一气呵成 老大辛苦了
不知道能不能续订,看看吧,我调成了5分钟一次,一次调用80轮
Failure!
Error: Auth Error
Description: No code returned by remote server
只有我自己下载不下来那个软件吗
Failure!
Error: Auth Error
Description: No code returned by remote server
[淚]
第三张图上面的,任何组织和目录那个选项你没有勾选,返回去检查下项目
Action中的运行日志 Push changes 出现错误,原因未知
Actionz中的运行日志 Push changes 出现错误
“To https://github.com/MarcusPierce/AutoApiSecret.git
! [rejected] HEAD -> master (fetch first)
error: failed to push some refs to 'https://github.com/MarcusPierce/AutoApiSecret.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Error: Invalid status code: 1
at ChildProcess.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:9:19)
at ChildProcess.emit (events.js:210:5)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5) {
code: 1
}
Error: Invalid status code: 1
at ChildProcess.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:9:19)
at ChildProcess.emit (events.js:210:5)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)”
文中配置参数,第三小节。仔细看看!
GITHUB_TOKEN生成之后需要做其他事情吗,文中没有说明得到的TOKEN需要填入哪儿
怎么看有没有续订成功?
快到期的时候会有邮件通知是否续订
(第7步,利用rclone来获取Token!)
到这步时,返回的是Failure!
请问是什么原因?
检查执行的命令 空格?双引号?检测应用ID和密码 是不是不对
创建应用程序的时候要选择 任何组织目录的账号都可以使用
昨天我也跟下面那位大兄弟一样,一步步查了两遍都没发现哪里不对,然后看了下无图的Githb原文,写的是id=r''和secert=''我悟了
弄完了,然后发现我不知道申请一个e5用来干嘛
不过还是感谢帖主
OneDrive网盘和Office365桌面版
CONFIG_ID、CONFIG_KEY,你那张图的光标,正好把最后的'给挡住,害得我这2参数都少打了个',折腾了一天才发现