和微博以及百度,人人,腾讯这些互联网巨头一样,Dbank也在大力推广自己的云存储开放平台
我这里大概介绍一下网盘开放平台的基本情况以及SDK的使用方法。(平台上有各种语言和平台的SDK可供下载)
A,作为第三方开发者,首先当然是申请创建一个新应用如下:
应用网址处推荐填写开发者自己的公司网站或者个人主页,详细介绍应用的设计构想能让你更快地通过网盘的审核(只有经过审核的应用才有操作网盘的权限),申请成功后会立即得到APPID与APPKEY(也就是标识自己的应用的ID和密钥,ID一般为5xxxx五位数字组成)。
网盘的接口分系统级接口(无需用户登录操作,比如创建用户)与用户级接口(用户授权登录操作网盘资源)两类。只拿到APPID和APPKEY(经过审核后)可以调用系统级接口,譬如nsp.auth里面的服务,当然第三方应用需要调用的应该是用户级接口。
B,应用通过审核后,如何调用用户级接口操作网盘资源
热爱互联网,热爱微博的你应该对“鉴权”不会陌生,我们使用微博时经常会弹出窗口问“是否授权给此应用”,用户授权互联网开放的一个必然趋势,新浪将自己数以上亿的用户基础分享给第三方开发者使用,就是通过OAuth2.0授权的方式。第三方应用在不接触到用户微博账号密码的条件下还能代替用户发微博,加关注,就是用了“鉴权”获取的session和secret,这两个字符串完全可以代表微博用户,保证了用户的隐私安全。
网盘的开放平台也是用的类似的方式,第三方应用开发者需要引导用户授权给他们的应用去访问网盘资源,用户授权的页面如下(应用需要考虑嵌入浏览器)
使用Safari浏览器访问:(建议使用非IE比如火狐浏览器,安装firebug,sid和secret信息通过firebug才能查看,位于响应头中)
http://login.dbank.com/loginauth.php?nsp_app=(你的APPID)
用户在输入网盘账户密码授权过程中会依次看到上面的三个页面,可能看到最后“无法打开指定的地址”时你会以为出错了,其实用户授权已经成功,此时浏览器的地址栏中就有了用户授权后的session和secret信息
sid就是sessionid,secret当然也就是secret,我们的应用程序可以使用这两个信息去访问用户的网盘资源了。(注意,session是会过期的,过期后需要用户重新授权才可使用)
C,拿到用户的session和secret了,怎么用
首先我们下载网盘的sdk,比如(http://code.google.com/p/dbank-sdk-dotnet/,这是.net版本的sdk,还有C++,java,php等许多语言的版本),sdk中封装了大部分常用的网盘操作API,方便开发者调用。
NSPClient nC = new NSPClient("iuTeAN9uaQ6xYuCt8f7uaL4Hwua5CgiU2J0kYJq01KtsA4DY","c94f61061b46668c25d377cead92f898");
我们使用刚才获取到的session和secret构造一个操作对象nC,然后就运行SDK中的示例程序,就可以看到结果了,SDK的具体使用方法可以看看google code上面的说明。
常用的问题如下:
- 接口返回session out,说明session过期了,需要重新授权
- 返回forbidden,说明应用未经过审核,没有访问网盘的权限,可以去联系平台的技术人员开启权限