menu MoeLoli
Microsoft 365 E5 Onedrive 部署Autoapi 保持活跃!
58 浏览 | 2020-08-27 | 阅读时间: 约 4 分钟 | 分类: 还没有分类qwq | 标签:

前些天白嫖了microsoft 的e5开发者。免费的office365订阅确实香,但是避免不了续期这个问题,部署autoapi可以提高续订的概率。不保证一定能续期!qwq

准备工作


应用注册

注册地址:https://portal.azure.com/#home

先用e5管理员账号登录网站,然后在主页找到Azure Active Directory点进去,再在左侧目录找到点击应用注册,再点上方的新注册就会跳出一个新建应用的界面,应用名字随意填写,然后选择任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户,重定向url选web,填入http://localhost:53682/,最后点注册即可

注册好应用会跳转到应用概述界面,你会看到一个应用程序(客户端) ID,复制这个Id记录下来


权限添加

在应用概述界面,点击左侧目录的API权限,依次点击添加权限Microsoft Graph委托的权限,然后依次搜索以下这12个权限并勾选:

Directory.Read.All Directory.ReadWrite.All Files.Read.All Files.ReadWrite.All

MailboxSettings.Read MailboxSettings.ReadWrite Mail.Read Mail.ReadWrite

Sites.Read.All Sites.ReadWrite.All User.Read.All User.ReadWrite.All

加上本身的User.Read 共13个

全部勾选好后点击底部的添加权限,然后又返回到了API权限界面,这时候你一定要再点一下代表xxx授予管理员同意,不点这个,outlook api会无法调用


添加密钥

点击左侧证书和密码,点+新客户端密码,说明随便填,年限随便选多久都行,然后点添加,添加好后,客户端密码下面会有一个,复制值下面的那一串代码,这是应用秘钥,后面会用到,到这一步,注册应用已经结束了。


获取refresh_token

获取token的方法有很多种,这里提供一种借助rclone 的方法

下载rclone 用文件管理器进入文件所在目录,直接在地址栏输入cmd、回车进入cmd中。

在cmd中输入:

rclone authorize "onedrive" "之前保存的应用id" "之前保存的应用秘钥"

如果使用powershell的话输入:

.\rclone authorize "onedrive" "之前保存的应用id" "之前保存的应用秘钥"

回车后会进入登录网页,正常登录之后接受应用的授权。网页提示 success!后返回cmd。发现终端多出来了一大串文字。我们只需复制其中refresh_token的值。

至此准备工作已经完成了!接下来修改一下脚本文件就可以了。修改 client_idclient_secret的值为获取的id和密钥。再把获取的refresh_token整个复制到1.txt文件即可。


踩坑

添加后续用户时,在API授权时某些权限需要管理员同意。

可以直接复制授权页面的url。登录管理员账号,然后直接在地址栏输入复制的url。就可以看到代表管理员授权了。(或许是我火星了,没看到入口


autoapi脚本部署


个人认为Github Action 为最好的选择。不需要服务器,运行稳定。建议用子账号的邮箱注册github账号Fork自己Fork的仓库。这样管理起来也比较容易。一起刷,美汁汁

way1 Github Action

  • 第一步,登陆/新建github账号,找到项目https://github.com/wangziyingwen/AutoApiSecret,点击右上角fork本项目的代码到你自己的账号,然后你账号下会出现一个一模一样的项目,接下来的操作均在你的这个项目下进行。
  • 第二步,依次点击上栏Setting > Secrets > Add a new secret,新建两个secret如图:CONFIG_ID、CONFIG_KEY。(这里的Setting是指仓库的Setting)

    内容分别如下: ( 把你的应用id改成你的应用id , 你的应用机密改成你的机密,单引号不要动 )

    CONFIG_ID

    id=r'你的应用id'

    CONFIG_KEY

    secret=r'你的应用机密'
  • 第三步,进入你的个人设置页面(右上角头像 Settings,不是仓库里的 Settings),选择 Developer settings > Personal access tokens > Generate new token。设置名字为GITHUB_TOKEN , 然后勾选 repo , admin:repo_hook , workflow 这三个大选项,最后点击Generate token即可。

  • 第四步,自己点击右上角星星/star立马调用一次,再点击上面的Action就能看到每次的运行日志,看看运行状况。

    (必需点进去Test Api看下,api有没有调用到位,有没有出错。外面的Auto Api打勾只能说明运行是正常的,我们还需要确认10个api调用成功了,就像图里的一样。如果少了几个api,要么是注册应用的时候赋予api权限没弄好;要么是没登录激活onedrive,登录激活一下)

  • 第五步,没出错的话,就搞定啦!!再看看下面的定时次数要不要修改,不打算改就忽略。

    然后第二天回来确认下是否自动运行了(ation里是否多出来几个),是的话就不用管了,完结。


way2 部署到服务器

python的版本最好为3.8,因为用到了python内置的json库。除此之外还需要第三方库requests。

1.py 文件只会执行一次。所以还要添加定时任务(或者在原脚本中加上一个for循环.,设置暂停时间,用screen方式也可以刷刷刷!)

Linux添加定时任务的话可以使用crontab

1、添加定时任务,用vim编辑

crontab -e

2、添加下面类似的命令。注意修改文件路径,api.log为输出的日志文件。

0 */3 * * * python3 /moe/autoapi/1.py >> /moe/autoapi/api.log 2>&1

#0 */3 * * * 表示在每天的00:00、03:00、06.00......等为三的倍数的时间执行
#其他时间设定请自行参考crontab命令

3、查看任务列表

crontab -l

4、查看crontab日志

tail -f /var/log/cron

等一段时间后查看api.log 如果都正常(在设定的定时时间都执行了脚本)没问题了。完结。


way3 找一台旧手机

亲测在手机上用Qpython(基于python3.6.6)不行。手机端建议使用Pydroid3(基于3.8.3)。这两个应用都可以下载第三方库。

也可以使用Termux 安装python环境(自行百度,推一波国光大佬写的termux教程)。

而且手机会杀后台。比较麻烦。(巨不推荐qwq<


参考内容/Thanks

大部分ctrl c/v


原教程博主-黑幕(酷安id-Paran)https://blog.432100.xyz/index.php/archives/50/

https://github.com/wangziyingwen/AutoApiSecret/blob/master/README.md

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!