| 
 
| 公司网站搭上了百度知道的开放平台,看了一天的接口文档,云里雾里的,网上的资料也不多,又咨询了下其他接过这个的同行,才明白流程,如下: 
 1、申请合作平台(这个就不用说了,关键说如何进行用户整合)
 
 2、官方api文档要求提供四个主要请求地址:
 
 a、用户登录url
 这个其实就是点击知道平台的登录要跳转的地址,就是网站登录页所在地址,以我们网站为例:
 Java代码
 
 测试的时候这个地址要能展示登录页,其中callback这个参数的名称可以自定义,但后边一定要写成/user/login_finish的形式,官方文档中少了/user/复制代码http://www.gbicom.cn/user.php?act=login&callback=http://zhidao.gbicom.cn/user/login_finish  
在这个登录的程序中,利用原登录的逻辑,主要是在登录成功后将用户的uid或uname加密成串写入cookie中,cookie的名字要唯一,以便后边验证调用,然后进行跳转,如下:
 Java代码
 
 
 复制代码header("Location:http://zhidao.gbicom.cn/user/login_finish?&token=XXX");
其中的XXX就是上面加密后的值.
 
 b、用户身份验证url
 Java代码
 
 复制代码http://www.gbicom.cn/user.php?act=auth&token=****
 因为知道有好几个页面,因此在a中的请求完成后,百度会根据token的值去寻找网站大域下的cookie,这个cookie即是上一步中生成的cookie,两者如果相同,即验证成功,返回数据如下:errno=0&uid=***&uname=***
 如果失败,则会返回errno=-2或errno=-1(这个根据具体情况)
 其中uid和uname即利用百度请求的token值进行反解后生成的值,可直接echo出上述结果,例如:
 Php代码
 
 
 复制代码if($result){  echo "errno=0&uid=***&uname=***";}else{  echo "errno=-1";}
记住,不要返回其他无关内容!并且在验证中绝对不能利用刚才的cookie验证,要读取数据库或反解token来生成结果!!
 c、用户退出url
 Java代码
 
 复制代码http://www.gbicom.cn/user.php?act=logout&token=*****&callback=http://zhidao.gbicom.cn/user/exit
 在这个请求中要删除生成的cookie,并且跳转到 http://zhidao.gbicom.cn/user/exit.
 d、用户注册url:
 Java代码
 
 复制代码http://www.gbicom.cn/user.php?act=register&callback=http://zhidao.gbicom.cn/user/login_finish
 官方又少了/user/(鄙视下),注册成功后就像登录一样跳转到:
 Java代码
 
 复制代码header("Location:http://zhidao.gbicom.cn/user/login_finish?&token=XXX");
e、cookie的名称:
 这个就是存储token值的cookie名称,可以随意命名,主要为了使百度能进行token值比对。
 
 在没有向百度提交之前进行本地的测试,即输入这些地址,查看结果,这个文档里有checklist,已经说的很清了!
 其他的就没有了,注意一定要严格按照上述的url格式,不能少一个参数,否则会发生各种错误!!
 上边只是接口的逻辑细节,如果要进行二次开发,要针对不同系统逻辑进行改造,但主要还是上述的内容,其他的积分兑换之类的以后遇到了再说!!
 
 测试成功后即可填写如下项目向百度平台人员提交,很快就接上了!
 站点名称
 站点域名
 联系Email
 登陆接口URL
 注册接口URL
 验证接口URL
 登出接口URL
 Cookie中存储Token的名称项
 
 来自:http://bryant24.iteye.com/blog/815664
 
 | 
 上一篇:帮忙看看问题 下一篇:关于版主已阅1.2的问题 |