客户端应用接入

客户端应用接入流程示例图
  • A.用户安装了你的客户端(PC/手机/平板)应用程序,在使用过程中你的应用需要访问该用户的麦库数据。此时你的代码应当检查本地存储是否包含该用户的凭证,若有则跳到步骤C;若没有则需要开始授权流程,实现方法为在应用界面中友好地嵌入一个浏览器窗口,并定向到麦库授权服务(http://open.note.sdo.com/authorize),跳转时携带的参数如下:

    • 1. response_type 必需参数,且为固定值 token

    • 2. client_id 必需参数,你的应用申请接入麦库后获得的id

    • 3. state 可选参数但推荐使用,在整个授权过程中state参数会一直被保留,当授权过程完成时根据state参数可以很容易地继续授权前的操作

    • 4. scope 可选参数,表示你的应用需要请求麦库用户的哪些权限,如果不传那么默认只能操作你的网站产生的数

    • 5. 其他参数一律被忽略一个正确的跳转地址例子:http://open.note.sdo.com/authorize?response_type=token&client_id=demo&state=new-task

  • B.内嵌浏览器被定向到麦库授权服务,麦库将确认用户身份并引导用户完成对应用的授权。完成后,浏览器会被重定向到一个固定的授权成功页面,凭证则以url fragment的形式传递。一个成功授权的例子:http://open.note.sdo.com/success#token=ASD234I9SF8 你的应用程序捕捉到本次重定向,并获取到凭证的值。之后你应当保存这个凭证,这样下次可以跳过授权流程。

    异常处理:如果用户拒绝对你的应用授权,那么内嵌浏览器会被重定向到一个公共的错误页面,包含的参数如下:

    • 1. error 错误类型,它的可能值参照《麦库开放API错误类型定义》,这里通常是access_denied

    • 2. error_descriptiton 可读的错误描述文本

    • 3. state 如果之前的请求包含了这个参数的话

  • C.你的应用通过用户的凭证访问当前用户的麦库数据,操作接口详见《麦库开放API接口文档》。