应用框架开发文档

跳转到: 导航, 搜索

此文档只针对新接入的第三方应用,原有的站内应用、企业应用(专业版应用)、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 包


weibo_app_workflow.png


应用内支持两类形式的超链接:

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;
  }
}