本文大纲

以前的Office 365开发者试用订阅(简称E3)有效期只有一年,一年过后数据都没了。

现在微软推出的新版订阅有效时间位90天,可自动进行订阅
官方教程(手动复制打开):https://docs.microsoft.com/en-us/office/developer-program/office-365-developer-program

一、加入开发者计划

1、加入Office 365开发人员计划
https://developer.microsoft.com/en-us/office/dev-program

2、右上角Microsoft帐户或启用Azure Active Directory的电子邮件登录
3、登录后填写国家地区和公司(下面第二项可不勾选),然后填写基本信息(全勾了就行)。
4、创建订阅
需要注意的是,这里选择的国家很重要,关系到你的onedrive数据等存储位置。比如我选择US,那么我的数据就是放在美国的微软数据中心。
下面张图中的“域名”弄错了,应该是 “域”,可随意填写

5、填写手机号进行验证,这样就注册好了。
6、点击“转到订阅” -> 添加用户即可。

二、修改预设 OneDrive 存储空间大小方法

1、效果

可以设置预设空间和任何成员(包括已存在的用户或全局管理员)。

2、步骤

1、下载Office365_OneDrive.ps1

链接: https://pan.baidu.com/s/11ii-JoYL53258NQUMSqi_w 提取码: 3gp6

2、执行脚本运行准备

以管理员身份运行命令提示符,输入powershell并按回车,然后执行下面命令。
第一次运行将自动下载所需组件,请耐心等待。
直接打开运行会造成视觉上的闪退效果,请打开命令提示符或者Powershell主程序运行。

Set-ExecutionPolicy -ExecutionPolicy Bypass -Force
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser -Force

3、执行脚本

打开PowerShell主程序,切换至Office365_OneDrive.ps1所在目录.
执行脚本(带参数或不带参数,需全局管理员账号权限).

.\Office365_OneDrive.ps1

3、另法

添加用户前用全局管理员访问https://admin.onedrive.com/#v=StorageSettings ,将容量设置为 5120 G,然后点保存即可。接下来新建的用户都会默认为5T, 而旧用户就必须删掉账户重建才会有5T。

三、E5 自动订阅程序

方法一

1、应用注册

(1)登录进入 azure(https://portal.azure.com/#home) ,登录账号使用e5的管理员账户 ,就是以xxx.onmicrosoft.com开头的的账户。搜索“应用注册”,点击“新注册”。

(2)名称随意取一个,但是最重要的是"受支持的账户类型"和“重定向 URI (可选)”(https://e5.qyi.io/outlook/auth2/receive) 一定要填对,不然程序收不到回调。

2、获取api key

点击注册后记录“应用程序(客户端)ID”“客户端密码”


保存好以上2个key,一会需要用到。

3、配置api权限


勾选以下四个选项后,同时点击 代表XX授予管理员同意

4、添加key到自动订阅程序

(1)进入 https://e5.qyi.io/user/home ,用github账户登录。点击 Github图标 登录后进入主页面。
(2)client_id ->应用程序(客户端)IDclient_secret->客户端密码 。点击保存。保存完毕后再点击 授权。
(3)此时会跳转到 microsoftonline Auth2.0授权页面,在这里请注意使用同一个域下的空账号(子账号)进行授权。

5、查看调用日志

进入 https://e5.qyi.io/user/home ,点击“查询日志”。

方法二

原理很简单,就是重复调用microsoft graph的api,一次调用10个api,5个onedrive的api还有4个outlook的api,剩下一个是组的api,调用一次后延时等待五分钟再重复调用。

1、应用注册

(1)登录进入 azure(https://portal.azure.com/#home) ,登录账号使用e5的管理员账户 ,就是以xxx.onmicrosoft.com开头的的账户。搜索“应用注册”,点击“新注册”。

(2)名称随意取一个,但是最重要的是"受支持的账户类型"和“重定向 URI (可选)”(http://localhost:53682/) 一定要填对,不然程序收不到回调。

2、获取api key

点击注册后记录“应用程序(客户端)ID”“客户端密码”


保存好以上2个key,一会需要用到。

3、配置api权限

依次点击添加权限、 Microsoft Graph 、委托的权限,然后依次搜索以下这12个权限并勾选:

勾选以下12个选项后,同时点击 代表XX授予管理员同意

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

4、下载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、配置Github脚本运行环境

(1)打开github项目目录,然后在线编辑项目里的1.txt,将整个 refresh_token 覆盖粘贴进去。
(2)依次点击上栏Setting > Secrets > Add a new secret,新建两个secret:CONFIG_ID、CONFIG_KEY。内容分别为下:
CONFIG_ID

id=r'你的应用id'

CONFIG_KEY

secret=r'你的应用机密'

(3)进入个人设置页面(右上角头像 Settings,不是仓库里的 Settings),选择 Developer settings > Personal access tokens > Generate new token。设置名字为GITHUB_TOKEN , 然后勾选 repo , admin:repo_hook , workflow 选项,最后点击Generate token即可。
(4)点击右上角星星/star立马调用一次,再点击上面的Action就能看到每次的运行日志,看看运行状况(必需点进去Test Api看下,api有没有调用到位,有没有出错。外面的Auto Api打勾只能说明运行是正常的,我们还需要确认10个api调用成功了,就像图里的一样。如果少了几个api,要么是注册应用的时候赋予api权限没弄好;要么是没登录激活onedrive,登录激活一下)。

(5)修改刷新时间和每次调用轮数
定时自动启动修改地方:(在.github/workflow/AutoApiSecret.yml文件里,自行百度cron定时任务格式)。这里是从0点开始,每两小时自动运行一次。

每次轮数修改地方:(在1.py最后面)

四、用阿里云函数和OneIndex搭建在线网盘

1、准备AccessKey

1、Onindex-ServerlessOneIndex项目的阿里云函数计算版本,OneIndex是一个PHP项目,目前已获得了3000+的star,可以将OneDrive挂载为个人在线网盘,提供资源的分享链接。
2、从GitHub上下载项目的zip包,解压,找到Deploy文件夹,其中Front和Back分别是前端和后端的部署文件;
3、阿里云页面点击右上角,获取accessKey和accessKeySecret;

为了安全起见,最好开一个只有对象存储权限的子账户,左侧栏用户 -> 新建用户 -> 添加权限 -> 选中AliyunOSSFullAccess -> 点击用户名 -> 创建新的AccessKey -> 记下Key与Secret

2、准备OSS的Bucket

在对象存储服务中,新创建一个存储桶,使用默认配置即可,但要记住您选择的区域(在下一步开通函数计算服务时需要在同一区域),以及Bucket名称;在创建完存储桶后,请记下区域节点的EndPoint(选择内网的)。

3、把参数填写在main.py中

将前面准备好的accessKey、accessKeySecret、endPoint、bucketName填入Deploy文件夹的Back里main.py的指定位置

4、部署函数计算后端

1、在上一步对象存储同一区域(如OSS中华东2这里也华东2)中创建一个函数计算服务。新建服务,打开公网访问。
2、新建函数,选择模板创建,选择Python2.7,flask-web模板。将main.py的全部代码复制粘贴到在线编辑器中。
3、代码下面的环境配置里新建main.initializer的函数初始化入口,其它参数可以参考图中示例配置。内存跟超时选最大即可(并不会实际就用到这么多)。然后下一步下一步,创建完毕。

4、重新点开函数 -> 代码执行,找到http触发器的url,将其同时填写到编辑器里的main.py的url_host中,以及本地部署包里Deploy/Front的config.json里(接下来要用)。

4.5、接下来把Front目录里的网页部署到网站上即可(直接上传到对应目录),以下介绍Github Pages的部署方法。

5、用GitHub Pages部署前端网页

1、创建一个空的repository,将Deploy/Front中的index.html和config.json上传到repository的根目录下,并commit,然后publish。
2、在仓库项目页面打开项目设置Settings,找到GitHub Pages,选择master branch。

3、发布成功,得到了最终的url

6、登录账号

到这一步,就已经完成了整个项目的搭建,接下来进行账号授权。
1、打开后台,默认是/admin,如我的是http://linjoey.cn/pan/admin
2、输入密码(与部署函数计算阶段的一致,默认是123456)
3、查看系统状态,检查前面信息是否有填写错误
4、左边账号管理 -> 登录 -> 选择微软365账户登录授权即可。
5、访问即可查看在线云盘了。如我的是:http://linjoey.cn/pan

最后修改:2021 年 07 月 01 日 08 : 35 PM