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

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

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

获取参数之前要注意和准备的东西

特别注意

如果想用OneDrive做图床,必须使用付费的个人版才可以,其它版本(包括免费个人版)只能上传,但无法获取分享链接(或者说获取到的分享链接是需要登录才能查看),详情可以查看:github issue

免费申请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需要的参数

要获取哪些参数

要通过API接入OneDrive,我们需要三个参数:租户(tanant)、客户端ID(clientId)、密码(clientSecret),这些参数我们需要从OneDrive的后台获取。

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

获取clientId

点击Azure Portal进入Azure的控制面板,点击“Azure Active Directory”
image.jpg

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

其中重定向URI的格式是:https://你的域名/auth/OnedriveRedirect.php,比如你的PicUploader后台域名是https://api.picuploader.com, 那么你要写成:https://api.picuploader.com/auth/OnedriveRedirect.php
16093138826001.jpg

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

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

获取clientSecert

clientSecret即客户端密码(注意创建好之后要马上复制,刷新后你就看不到密码了(变成*号了),如果你要重新复制,那只能删除它,再创建一个新的)
image.jpg

给API添加权限

添加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参数有两种方法,一种是在:默认目录→应用注册→终结点,如下图所示的,PicUploader中tenant值就应该是d6378ae5-499f-40f9-84d4-9fe81fdbee46
image.jpg

你也可以在“默认目录”→“应用注册”→“所有应用程序”里找到你前面添加的PicUploader程序,然后点进去
image.jpg

上边点进去后会来到这里,这里同样有个终结点(即“common”),我这边免费个人账号测的用common可以,但第一种方法的终结点不可以,不知道收费的个人版(或者说家庭版可不可以,没有账号测试)
image.jpg

开始获取授权

填好三个参数后,在PicUploader后台OneDrive配置页中,点击获取onedrive授权跳转到该页面,直接点
image.jpg

有时候它的授权页面可能是这样的(反正两种我都见过):
image.jpg

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

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


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

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

打赏
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

2 评论
内联反馈
查看所有评论
nanbabyer
nanbabyer
3 年 前

我的是个人收费版

2
0
希望看到您的想法,请您发表评论x

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

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