通过PicUploader上传文件到微软OneDrive网盘

通过PicUploader上传文件到微软OneDrive网盘

(本文是PicUploader: 各图床获取上传图片参数的方法的子文章)

关于OneDrive

OneDrive个人免费账户没权限使用api上传文件,要付费版才行(个人版/家庭版/教育版/企业版等),OneDrive其实并不是一个单一产品,它还是Office365的一个存储服务,Office365包括在线web版的Word、Excel、Powerpoint、OneNote等等这些产品(当然本地安装版的登录了也是一样的),当然也包括OneDrive,所有服务如下图所示:
-w1440

免费申请Office365教育版

如果你自己没有企业/教育或个人购买的Office365,可以使用下面的地址申请个免费的试试,学生版和教师版随便哪个都行。
学生版申请地址:student
教师版申请地址:faculty

用于接收微软Office365教育版的临时邮箱:
http://mail.mzr.me
http://sysu.edu.pl
http://od.obagg.com
http://mail.hrka.net
http://mail.xgdfz.tech
教程:https://www.wsho.cn/html/1260.html

获取OneDrive api密钥

OneDrive本身的接口并没有一个叫“OneDrive”的后台,而是通过微软的云服务“Azure”来提供API的。

点击Azure Portal进入Azure的控制面板
Xnip2019-11-06_18-17-47

点击“Azure Active Directory”
Xnip2019-11-06_18-18-18

新注册一个应用
Xnip2019-11-06_18-20-00

其中重定向URI,假如你的PicUploader后台域名是https://www.abcd.com, 那么你要写成:https://www.abcd.com/auth/OnedriveRedirect.php
-w829

重定向URI必须是https,如果是http,则只允许前缀为“http://localhost”开头,如果你是在本地安装的,你可以这样设置https
Xnip2020-03-02_21-36-20

在这里能找到第一个参数clientId
Xnip2019-11-06_18-26-24

在这里可以找到clientSecret(实际上是自己创建)
Xnip2019-11-06_18-53-31

接上图,创建客户端密码,即clientSecret:
Xnip2019-11-06_18-54-31

注意创建好之后要马上复制,刷新后你就看不到密码了(变成*号了),如果你要重新复制,那只能删除它,再创建一个新的
Xnip2019-11-06_18-56-17

添加API权限(否则到时你无法通过api上传文件):
Xnip2019-11-06_18-31-26

Xnip2019-11-06_18-32-06

-w1396

到这里就添加权限完成了
-w1437

总结一下,在“概述”里找clientId,在“证书和密码”里自己创建clientSecret(即客户端密码,创建后马上复制,下次来就看不到了,如果之前的密码丢了只能删除再创建新的),在”API权限“里设置权限(勾选Microsoft Graph→委托的权限→Files→勾选Files下的所有权限):
-w1397

另外,创建好之后还有个终结点,配置里的tenant就是用终结点里“域名后面”的那一段参数,比如下图所示的,tenant值就应该是organization
-w1437

在PicUploader后台OneDrive配置页中,点击获取onedrive授权跳转到该页面,直接点Accept(接受)就可以:
-w721

然后会自动跳转回来,跳转回来会显示“已获取onedrive授权”:
-w631

获取完授权后就可以开始上传了。


注意:目前上传到OneDrive只返回直接链接(即不是markdown格式,你设置markdown格式也不返回markdown格式),原因是OneDrive只有个人收费版可以用于Markdown链接的,而其它无论是企业版/教育版都只能得到一个共享链接,这个链接在浏览器可以打开但不能用于markdown里(详见这里)。

目前我还不知道个人收费版返回的分享链接是怎样的,如果有人有,并且你想使用我这个PicUploader上传图片到你的OneDrive,请在评论里联系我,我给你匹配一下返回markdown格式。

打赏
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

通过PicUploader上传文件到微软OneDrive网盘