html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

百度站内应用开发体验及demo代码_PHP教程_编程技术

[ ] 已经帮助:人解决问题

 3xqHTML5中文学习网 - HTML5先行者学习网

写在前面: 博客很久没有更新了,主要是事情实在太多,不过最近也确实做了些比较有价值的事情,后面和大家慢慢分享3xqHTML5中文学习网 - HTML5先行者学习网

笔者在腾讯主要负责开放平台openapi的工作,由于工作关系,这几天遍历了 百度、人人、新浪、淘宝 4个平台,研究了一下他们对于站内应用、网站登录、移动应用的整合方式,并开发了一个百度站内应用的demo。3xqHTML5中文学习网 - HTML5先行者学习网

百度站内应用demo:
体验地址(要体验的话,请先联系我开通白名单):
http://app.baidu.com/app/enter?appid=385894&debug=1&is_from_dev=1&canvas_pos=platform
代码已经开源在github上: https://github.com/dantezhu/baidu_app_demo,里面封装了一个baidu的sdk,有需要的朋友可以直接拿去用。
开发语言用的是 python+flask3xqHTML5中文学习网 - HTML5先行者学习网

移动应用 和 网站接入,这两种接入都是走的oauth的方式,这个基本所有平台都是一样的。
而对于站内应用则和腾讯目前不太一样,所以着重说明一下在这里的处理,仅以百度举例:
百度的教程在这里: 百度站内应用开发文档3xqHTML5中文学习网 - HTML5先行者学习网

1. 当用户点击应用列表进入时,百度会传给应用两个参数: bd_user, bd_sig,看起来很像腾讯开放平台的openid和openkey,但是实际上百度这两个参数是无法做到很强的登录态保证的,仅能用来保证这两个参数不是人为篡改的。3xqHTML5中文学习网 - HTML5先行者学习网

2. 如果两个参数校验通过,那么就要看应用的session中的userid和bd_user是否相同。其实这是百度推荐的一种应用开发方法,即为了避免每次用户进入应用都要调用oauth那一套登录体系,所以建议应用在第一次登录成功就写入到自己的session中。 对应到腾讯平台来看,我们其实并没有在wiki上强制或推荐要求用户这么做,主要是即使应用不写自己的session,每次都来调用腾讯验证openid、openkey的接口,对用户来说也不会有什么区别;但是对应百度的话,每次调用百度的登录授权接口,即使之前授权过也会弹出一次对话框(在文章最后的截图就能看出来)3xqHTML5中文学习网 - HTML5先行者学习网

3. 如果第2步相同的话,证明用户可能是刚刚刷新了页面,所以就直接进入应用主页。如果不相同,那么就要开始标准的oauth2.0登录。但是这里百度是只推荐用 server-side的方式来走的,所以编码有些复杂,但是安全性也高一些。3xqHTML5中文学习网 - HTML5先行者学习网

4. 如果用户登录授权ok,那么应用要在跳转到的redirect_url中写上session,然后跳转到首页。整个流程结束。3xqHTML5中文学习网 - HTML5先行者学习网

以下是我写的百度站内应用demo的截图:3xqHTML5中文学习网 - HTML5先行者学习网

3xqHTML5中文学习网 - HTML5先行者学习网

3xqHTML5中文学习网 - HTML5先行者学习网

3xqHTML5中文学习网 - HTML5先行者学习网

最后要说下,百度对应用做了很多监控,比如在页面上必须放上monitor脚本,等等,这里值得我们借鉴。3xqHTML5中文学习网 - HTML5先行者学习网

3xqHTML5中文学习网 - HTML5先行者学习网
3xqHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助