不保证一定能续订!!!
不保证一定能续订!!!
不保证一定能续订!!!
重要的事情说三遍,微软从未说过有一定的续订标准,所以不保证一定能续订,请不要在e5子号的onedrive存放重要数据,使用本脚本造成的一切后果概不负责。
最近e5订阅很火,但是玄学的续订方式也让人摸不着头脑,有的人说挂个oneindex就续订了,有的人说所有第三方程序都挂了一遍也没续订,所以我按照微软的官方文档写了一个刷api的脚本,原理很简单,就是重复调用microsoft graph的api,一次调用10个api,5个onedrive的api还有4个outlook的api,剩下一个是组的api,调用一次后延时等待五分钟再重复调用.
教程开始:
1.首先去https://portal.azure.com/#home注册一个应用,这一步网上的教程实在是太多了,我就不详细写了,大致写一下流程
先用e5管理员账号登录网站,然后在主页找到Azure Active Directory点进去,再在左侧目录找到点击应用注册,再点上方的新注册就会跳出一个新建应用的界面,应用名字随意填写,然后选择任何组织目录(任何 Azure AD 目录 – 多租户)中的帐户,重定向url选web,填入http://localhost:53682/
,最后点注册即可
2.注册好应用会跳转到应用概述界面,你会看到一个应用程序(客户端) ID,复制这个Id记录下来,后面要用到,然后点击左侧目录的API权限,依次点击添加权限
、 Microsoft Graph
、委托的权限
,然后依次搜索以下这12个权限并勾选:
Files.Read.All Files.ReadWrite.All Sites.Read.All Sites.ReadWrite.All
User.Read.All User.ReadWrite.All Directory.Read.Al Directory.ReadWrite.All
Mail.Read Mail.ReadWrite MailboxSettings.Read MailboxSettings.ReadWrite
全部勾选好后点击底部的添加权限,然后又返回到了API权限界面,这时候你一定要再点一下代表xxx授予管理员同意
,不点这个,outlook api会无法调用
3.点击左侧证书和密码,点+新客户端密码,说明随便填,年限随便选多久都行,然后点添加,添加好后,客户端密码下面会有一个值,复制值下面的那一串代码,这是应用秘钥,后面会用到,到这一步,注册应用已经结束了
4.windows下载rclone获取token,点击这里下载rclone,随意下载到电脑的任意一个目录,下载后不要双击rclone.exe安装!
,而是在rclone.exe同目录下,按住shift后点鼠标右键
,选择在此处打开cmd窗口
或在此处打开power shell窗口
,弹出窗口后,CMD窗口就执行:
rclone authorize "onedrive" "之前保存的应用id" "之前保存的应用秘钥"
请自行将双引号内的替换为之前我们保存的应用id和秘钥,示例:
rclone authorize "onedrive" "729xx16f-8x70-4xb8-8fd6-1xxx9b582b1f" "?@P@4u/fxxcxxx28:B-3i_QxxFxc6_ZO"
如果是power shell的窗口请执行:
.\rclone authorize "onedrive" "729xx16f-8x70-4xb8-8fd6-1xxx9b582b1f" "?@P@4u/fxxcxxx28:B-3i_QxxFxc6_ZO"
执行后电脑浏览器会弹出一个界面,登陆自己的e5账号,然后看到浏览器显示Success
!,说明获取token成功了。然后我们返回的cmd窗口或者power shell窗口,你会看到一大段Paste the following into your remote machine --->
开头,<---End paste
结尾的代码,找到"refresh_token":"
复制后面的代码直到","expiry"
,说白了就是复制refresh_token,不要带双引号,类似格式如下: OAQABAAAAAABeAFzDwllzTYxxxx_qYbH8UALCVjtv_6YeHHOwXExxxxxywOKSg2Hd_GSjW1vcLzqLhDC51Sl4T2ZYfK1p64_ps3qidrodIZLkz-4f-21IfUUgQdEi-g-jIw-La9FjREuUuQnSSKgOlBAKpiwVjwPGdaO_G9yB5cLvX5zi3MZ-_ZwEVHEp-ldDGYqQiZFSnpD6G-cjQIzuN0w8lxl_9laIH0dkA1uUOKtA64qbC976OHSIaidaF4oZi_ntQIsMHWnUssYbR-2X446apxxMupLRM5oaHb8bKMTDlzk6_zUOw23y1jcb8gzyzL5IZdBVVX9UIuPrR-yuzyTd24v39OGk-I9xxhRms5vM6-vUPgxKzuIwFq_CYothdbo8ZvBuMJebl21D1UeaBerjPzxxxxxxxxxVQakxjMBHPC1ueyxR2UvRrlhHhNs8qYFBe5lzceofNWvy1QYRObT8DqCENyLa4Nb08jVTcA6Eh7oxkXtflg_xEY8ECRTWGIZ2qo4ziW70xxxxxxxvq6MCubQgOdt0qdWrc15LVV99YAl9L0KtC3ql0tMPVJBvodTNrvVqcxD-LNtnpxxx1J2tmDuc15xxxxxxTPp5MjXDhSbq8MACmRQh4dR09QqmqXps1c80pxyVkQbr8O669MQ1FMqlICTKJQ8c54_U9NWBo1rAU_zPmE841mDEFjy7dXakFkYR9IIthPNBr2nCQDdvjTitCiIwcT-NTitAd7TseSpiWg9zBsd6Q1OOcL83anZnaJ4sHy68XupeFydmjIYWZw83m96xRaw5MMHJAoyeTkwkHH9qqaSZ0mNM_PN09-tj6nUVYWf5lajMNzd_0GPfwqxxxx9LC0deo43zNTZq20f94_-HNTscKg5dJOA8jUeddxxxxLQa-ZXZV38-lxxxYL_ZDvPu5-0FP-aDTwvxxxx0F7g97o3wTrHSZw14Ra9uxniTh4gAA
5.然后我们终于可以下载脚本了,点击下载,先下载到本地,然后用txt方法打开py脚本,在脚本11行和13行的单引号内分别填入之前保存的应用id和应用秘钥,保存。保存好脚本后再在脚本同目录下创建一个空的txt文件,重命名为1.txt
,将第4步获取的OAQ开头的那一大段token复制进1.txt,保存退出。
1.py和1.txt都保存好就可以上传到服务器了,一定要保证1.py和1.txt两个文件在同目录,如何上传文件到服务器自行百度。
6.在服务器上,这里以ubuntu和debian为例,你需要执行apt-get install python3
安装python3,已安装就不用装了,执行apt-get install python3-pip
来安装pip3,执行pip3 install requests
安装requests,执行apt-get install screen -y
来安装screen都装好后再执行screen -S api
这时候会进入一个新窗口,再通过cd命令进入脚本所在目录,执行python3 1.py
就正式开始刷脚本api了,如果成功,屏幕会输出成功调用信息,因为我们开了screen屏幕,所以这个时候直接断开ssh,它也会在后台运行,下次登录ssh执行screen -r api
就可以再看到调用信息了。
常见错误以及答疑
为什么报错
Traceback (most recent call last):
File "1.py", line 83, in
main()
File "1.py", line 40, in main
access_token=gettoken(refresh_token)
File "1.py", line 33, in gettoken
refresh_token = jsontxt['refresh_token']
KeyError: 'refresh_token'
答:这是因为你使用rclone获取的refresh_token有错误,大概率是你复制错了,一定要是OAQ开头的字符串,并且不带双引号!
使用ubuntu或debian也要下载rclone.exe获取token吗?
答:要,rclone的作用是获取token,微软的api是要你带着token访问才能成功的,所以无论哪个平台,都要使用rclone.exe获取token
一定要服务器吗?
答:不一定,只要能使用python3的平台都可以使用,你可以自己百度windows安装python3,或者安卓手机下载termux安装python3,具体怎么操作自行摸索
脚本要挂多久?
答:微软没有个明确的指标,所以默认越久越好,所以建议24小时挂在服务器上
screen是做什么的?
答:screen是服务器上用的,一般我们服务器执行脚本如果断开ssh脚本也会断掉,所以我们使用screen -S api开了一个新的名为api的屏幕,即使断开ssh,脚本依然在后台运行,下一次连接ssh的时候执行screen -r api即可再查看脚本执行情况,如果是windwos挂脚本的话就不需要screen
This is a topic that is near to my heart… Thank you!
Exactly where are your contact details though?
Hello Dear, are you in fact visiting this web site daily, if so
then you will definitely obtain good experience.
Excellent blog post. I certainly appreciate this website.
Continue the good work!
Look at my site: special
Wow, this post is nice, my sister is analyzing these kinds of things,
thus I am going to convey her.
Hi, I would like to subscribe for this webpage to get most up-to-date updates, thus where can i
do it please help out.
Highly descriptive blog, I enjoyed that bit. Will there
be a part 2?
Fantastic website. Plenty of useful info here. I’m sending it to several pals ans
also sharing in delicious. And certainly, thank you for your effort!
Way cool! Some extremely valid points! I appreciate you
penning this article and also the rest of the site is also very good.