对百度网盘API的一些分析(非OAuth)

2013-09-16 20:33:18 +08:00
 yangff
这 **不是** 使用OAuth认证授权的百度网盘API。

先上github,https://github.com/Yangff/node_pcsapi
首先这是个坑爹玩意(我自己这么认为的),之所以这么说是因为我被jugglingdb 这奇葩玩意恶心到了。如果要用的话,我想你只需要pcsapi.js和baiduapi.js的内容就行了,一看就懂很容易的……

然后来说说API,因为手中条件有限,所有所有的API都是针对
http://pan.baidu.com
结合开发者的PCS api手册分析得到的(因为他们的接口几乎一样……)

直接使用百度的API,需要用到baidu的cookie(不要session……真神奇)。然后根据相关的RestfulAPI直接请求就行了。API列表可以抓包,或者在源代码里面搜索RestfulAPI.XXX,XXX可以在源代码里面找,或者直接看这个https://github.com/Yangff/node_pcsapi/blob/master/apilist.txt
删除有点问题,因为删除用到了一个Token,这个Token似乎是直接塞在pan.baidu.com下一个script标签里面的……

主要写的还是baidu登录的验证……那个比较蛋疼,登录的相关流程我写在这里了:
https://github.com/Yangff/node_pcsapi/blob/master/baidulogin.md

最后写完发现我特么应该针对手机客户端抓包的……

最后,最后,请允许我黑jugglingdb ,jugglingdb-mysql 和 requestify,这也是我为什么没有直接打包成package的原因之一,另一个原因是我根本不会(雾)。请不要尝试更换这三个东西……代码我都改过,原版的都有问题,我也懒得去gituhb上提了,都是泪。这也是我为什么说最好不要管除了pcsapi.js和baiduapi.js以外的文件……另一方面我相信我的代码风格会严重破坏你现有的代码可维护性。

另外说一句,百度可能会要求你输入验证码,所以我在baiduapi里面塞了一个http。
使用的时候需要baiduapi.start(port),如果出现验证码要求,访问这个地址:port,点击验证码输入……
不过也因此,如果出现异常程序不会自动退出……如果卡太久大概是异常了……

还有一个问题想要问一下,
JSON.parse的时候Failed parsing expected JSON response, returned raw response
然后我输出来看,似乎是百度在返回的时候把“"”写成“'”了,但是我替换之后,实际上JSON确实成功转变成对象了……可是还报这个错,但是不影响登录结果,Cookie也能取到……这是为啥。
19266 次点击
所在节点    分享创造
26 条回复
yangff
2013-10-09 18:35:49 +08:00
msg7086
2013-10-09 18:35:59 +08:00
loveshouhu
2014-02-20 17:14:48 +08:00
请注意,如果有验证码……恭喜悲剧再见。 这句话好欠啊。。23333
yangff
2014-02-20 20:04:53 +08:00
@loveshouhu 登录验证码我处理了。下载自己网盘里面的东西是不用验证码的。
loveshouhu
2014-02-20 23:16:30 +08:00
@yangff 我就在想,为什么百度不能提供一套针对个人使用自己网盘的api。。。
yangff
2014-02-20 23:27:37 +08:00
@loveshouhu pcs除了只能在工作目录使用外基本满足要求,其他的可以直接用百度网盘在web上的api,其实挺清晰的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/82687

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX