应用框架开发文档
(→登录状态访问应用,自动授权成功参数) |
(→页面流程) |
||
第59行: | 第59行: | ||
如果接入方需要iframe 高度自适应等功能,请引入我们提供的 JS 包 | 如果接入方需要iframe 高度自适应等功能,请引入我们提供的 JS 包 | ||
+ | |||
+ | |||
+ | http://www.sinaimg.cn/blog/developer/wiki/weibo_app_workflow.png | ||
第80行: | 第83行: | ||
假设您的站内应用地址是:apps.weibo.com/liwu,iframe中应用实际地址是:www.liwu.com。 当浏览器地址栏是apps.weibo.com/liwu/demo/a1.php时,iframe中的页面会定位至www.liwu.com/demo/a1.php | 假设您的站内应用地址是:apps.weibo.com/liwu,iframe中应用实际地址是:www.liwu.com。 当浏览器地址栏是apps.weibo.com/liwu/demo/a1.php时,iframe中的页面会定位至www.liwu.com/demo/a1.php | ||
− | |||
==应用框架 POST 参数== | ==应用框架 POST 参数== |
2014年2月26日 (三) 16:39的版本
此文档只针对新接入的第三方应用,原有的站内应用、企业应用(专业版应用)、Page应用,需要第三方进行代码升级并在平台网站升级后才能使用。
为了规范第三方应用接入,提供一致性的开发接入模式,2014年微博对原有的三种应用框架体系进行整合,形成一套新的框架体系。
目录 |
名词解释
应用接入方:开发应用的第三方团队或个人。
应用框架:微博向应用接入方提供的整套解决方案。
应用 iframe 外框:微博开放平台提供的应用承载的页面,内部通过 iframe 嵌入接入方的页面。
新版应用框架特性
- 快速授权:如果用户在登录状态访问应用,新的框架将默认完成授权,并将 access_token 信息传递给第三方。
- 统一接入方式和参数:无论是哪种类型的应用,无论是 Web 版还是客户端嵌入的 H5 版本,客户端收到的参数都是相同的,接入方式也基本上都相同。应用内可以通过浏览器 userAgent 来区分是 Web 端还是 H5 状态。**新增应用分享和赞。直接将应用分享到微博,并生成卡片展示,快速传播。
- 应用支持未登录访问:未登录微博也可以浏览应用,必要的时候通过我们的 JS 客户端唤起登录浮层。
- 应用宽度调整为 940px:不支持原来的 760px,原来的 950 px 改为 940px。
新应用框架范例展示
企业应用
应用名:北京汽车网上4S店
预览图:Web版、H5版
站内应用
应用名:三格半
预览图:Web版
Page应用
应用名:
预览图:Web版、H5版
创建应用
应用框架实现方式及页面流程
实现方式
应用框架采用 iframe 嵌套,通过 POST 形式将参数传递给应用接入方提供的应用地址
页面流程
应用外框架获取当前登录用户信息,自动完成应用授权,并将 access_token 等信息加密
应用外框架解析当前访问的 URL,并解析为对应的第三方页面 URL,将加密的 access_token 等信息通过 POST 传递给第三方
第三方使用微博提供的 SDK (如 PHPSDK 等),将加密的信息解密
如果接入方需要iframe 高度自适应等功能,请引入我们提供的 JS 包
应用内支持两类形式的超链接:
1)在当前窗口跳转,地址栏不变
<a href="应用实际地址链接" target="_self"></a>
或
<a href="应用实际地址链接"></a>
2) 在当前窗口打开,刷新整个框架,地址栏改变
<a href="http://apps.weibo.com/xxx" target="_top"></a>
直接跳转至指定页面:
假设您的站内应用地址是:apps.weibo.com/liwu,iframe中应用实际地址是:www.liwu.com。 当浏览器地址栏是apps.weibo.com/liwu/demo/a1.php时,iframe中的页面会定位至www.liwu.com/demo/a1.php
应用框架 POST 参数
应用框架会通过 POST 形式,发送给第三方页面一个加密后的参数 signed_request,这个参数可以使用 PHPSDK 之类进行解密。
未登录状态访问应用参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
user | true | Array | 当前用户对象 |
algorithm | true | String | 签名算法,暂时用 HMAC-SHA256 |
issued_at | true | Int | 服务端生成时间,unix timestamp 格式 |
referer | true | String | 页面的 document.referrer |
ouid | false | uint64 | 当前应用的安装者 uid,站内应用无此参数 |
登录状态访问应用,自动授权成功参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
user | true | Array | 当前用户对象 |
user | true | Array | 当前用户对象 |
使用 PHPSDK 从 signed_request 提取参数:
if(!empty($_REQUEST["signed_request"])){ $o = new SaeTOAuth( WB_AKEY , WB_SKEY ); $data = $o->parseSignedRequest($_REQUEST["signed_request"]); if($data == '-2'){ die('sign is error!'); } else { $_SESSION['oauth2'] = $data; } }