站内应用开发指南
小 (→站内应用创建及发布流程图) |
(→技术开发) |
||
第52行: | 第52行: | ||
<br> | <br> | ||
<br> | <br> | ||
+ | 站内应用授权流程 | ||
+ | {{center|http://www.sinaimg.cn/blog/developer/wiki/kfzn_01.png}} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===站内应用框架会POST给您的应用以下信息:=== | ||
+ | |||
+ | 1.1用户未授权传递参数 | ||
+ | {| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color: #CCCCCC;" | ||
+ | |- | ||
+ | !width="10%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"| | ||
+ | !width="5%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"|必选 | ||
+ | !width="20%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"|类型及范围 | ||
+ | !width="65%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"|说明 | ||
+ | {{api_args|user|true|array|当前用户对象}} | ||
+ | {{api_args|algorithm|true|string|签名算法,暂时用HMAC-SHA256}} | ||
+ | {{api_args|issued_at|true|int|服务端生成时间, unix timestamp格式}} | ||
+ | |} | ||
+ | 用户未授权时应用需要自动判断,并调用[[OAuth 2.0]] 授权弹层。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 1.2用户授权后传递参数 | ||
+ | {| border="1" cellspacing="0" cellpadding="0" width="100%" class="parameters" style="border-color: #CCCCCC;" | ||
+ | |- | ||
+ | !width="10%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"| | ||
+ | !width="5%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"|必选 | ||
+ | !width="20%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"|类型及范围 | ||
+ | !width="65%" style="text-align:center;font-weight:bolder;border:1px solid #cccccc"|说明 | ||
+ | {{api_args|user|true|array|当前用户对象}} | ||
+ | {{api_args|algorithm|true|string|签名算法,暂时用HMAC-SHA256}} | ||
+ | {{api_args|issued_at|true|int|token生成时间, unix timestamp格式}} | ||
+ | {{api_args|expires|true|int|token过期时间, unix timestamp格式}} | ||
+ | {{api_args|oauth_token|true|string|access token}} | ||
+ | {{api_args|user_id|true|uint64|当前用户微博user id}} | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | <pre>//从POST过来的signed_request中提取oauth2信息 | ||
+ | if(!empty($_REQUEST["signed_request"])){ | ||
+ | $o = new SaeTOAuth( WB_AKEY , WB_SKEY ); | ||
+ | $data=$o->parseSignedRequest($_REQUEST["signed_request"]); | ||
+ | if($data=='-2'){ | ||
+ | die('签名错误!'); | ||
+ | }else{ | ||
+ | $_SESSION['oauth2']=$data; | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | ===判断是否获取到access token=== | ||
+ | |||
+ | <pre>//判断用户是否授权 | ||
+ | if (empty($_SESSION['oauth2']["user_id"])) {//若没有获取到access token,则发起授权请求 | ||
+ | include "auth.php"; | ||
+ | exit; | ||
+ | } else {//若已获取到access token,则加载应用信息 | ||
+ | $c = new SaeTClient( WB_AKEY , WB_SKEY ,$_SESSION['oauth2']['oauth_token'] ,'' ); | ||
+ | |||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | ===调用应用授权弹层=== | ||
+ | |||
+ | 调用授权弹层时,页面背景用一张应用图片填充,给用户带来更好的体验。 | ||
+ | |||
开发参考:[[API参考]]、[[SDK下载]]、[[调用Demo]] | 开发参考:[[API参考]]、[[SDK下载]]、[[调用Demo]] | ||
+ | |||
==站内应用审核== | ==站内应用审核== | ||
当您完成站内应用的开发并测试没有问题后,可以在站内应用的汇总信息页面点击“提交审核”按钮,将您的应用提交给平台工作人员进行审核。 | 当您完成站内应用的开发并测试没有问题后,可以在站内应用的汇总信息页面点击“提交审核”按钮,将您的应用提交给平台工作人员进行审核。 |
2011年6月2日 (四) 11:10的版本
目录 |
站内应用创建及发布流程图
站内应用的创建及发布包括下面的流程,开发者可以根据应用当前的状态进行相应的操作:
登录微博账号
建议由技术开发人员使用官方微博帐号来登录
设置开发者信息
在开放平台首页上选择“我是开发者”,进入到应用开发页面; 在应用开发页面中,点击“创建应用”按钮:
- 若您还没有填写开发者信息,系统会自动跳转到编辑开发者信息页面。
开发者信息内容填写:
- 开发者类型:个人/公司,根据实际情况进行填写。
- 开发者名称:请填写公司名称或者您的个人姓名。
- 其他信息:个人/公司网站、联系电话、联系Email。
- 请如实填写,以便于我们和您及时沟通联系。
- 填写完毕,请点击保存按钮进行保存
创建站内应用
在应用开发页面点击“创建应用”,会弹出浮层:
- 选择创建站内应用,即可进入创建站内应用的页面。
创建站内应用需要完善以下信息:
- 应用名称:该名称用于来源显示,用户通过应用发布微博信息后,应用的名称会出现在微博信息下方,点击后直接进入应用地址。
- 绑定域名:请填写根域名,绑定域名后其他域名无法使用您的appkey。
- 应用分类:请依据您所开发的应用类型来选择相关的分类信息;请确认您的应用分类正确,否则无法通过您的审核申请。
编辑应用基本信息
应用页面设置
- 站内应用地址:该地址是应用在新浪微博展示的应用基本地址。
- 应用实际地址:该地址是第三方应用的实际地址,微博服务器会向该地址发送请求获取应用内容。
- Iframe高度:开发者可以设置Iframe的高度,也可以选择Iframe的高度根据你的应用页面自适应,但需要开发者在应用页面中部署一段JS代码:
<script src="http://tjs.sjs.sinajs.cn/t35/apps/opent/js/frames/client.js" language="JavaScript"></script>
- 提示:若你的应用有多个页面,并且每个页面的高度不一致,则每个页面都需要部署以上JS代码。
运营信息
- 开发者想要对应用进行维护、升级等操作时,可以开启维护状态,并填写维护原因告知平台工作人员,此时用户再访问你的应用时,会提示用户你的应用正在维护中,请稍后访问。
应用截图
- 请上传相关的应用介绍照片,这些图片会在应用频道中展示,让用户能更直观的了解你的应用。
测试用户
- 应用在未通过审核之前,不能大范围推广,您可以设置最多15个测试用户来测试尚在开发中的应用。
- 相关内容填写完毕后,请点击保存按钮进行保存。
技术开发
应用信息保存成功后,将会获得该应用的App Key和Secret Key,您可以通过这两个Key数据开始进行相关的技术开发工作。
App Key是应用的唯一标识,开放平台通过App Key来鉴别应用的身份。 AppSecret是给应用分配的密钥,开发者需要妥善保存这个密钥,这个密钥用来保证应用来源的的可靠性,防止被伪造。
站内应用授权流程
站内应用框架会POST给您的应用以下信息:
1.1用户未授权传递参数
必选 | 类型及范围 | 说明 | |
---|---|---|---|
user | true | array | 当前用户对象 |
algorithm | true | string | 签名算法,暂时用HMAC-SHA256 |
issued_at | true | int | 服务端生成时间, unix timestamp格式 |
用户未授权时应用需要自动判断,并调用OAuth 2.0 授权弹层。
1.2用户授权后传递参数
必选 | 类型及范围 | 说明 | |
---|---|---|---|
user | true | array | 当前用户对象 |
algorithm | true | string | 签名算法,暂时用HMAC-SHA256 |
issued_at | true | int | token生成时间, unix timestamp格式 |
expires | true | int | token过期时间, unix timestamp格式 |
oauth_token | true | string | access token |
user_id | true | uint64 | 当前用户微博user id |
//从POST过来的signed_request中提取oauth2信息 if(!empty($_REQUEST["signed_request"])){ $o = new SaeTOAuth( WB_AKEY , WB_SKEY ); $data=$o->parseSignedRequest($_REQUEST["signed_request"]); if($data=='-2'){ die('签名错误!'); }else{ $_SESSION['oauth2']=$data; } }
判断是否获取到access token
//判断用户是否授权 if (empty($_SESSION['oauth2']["user_id"])) {//若没有获取到access token,则发起授权请求 include "auth.php"; exit; } else {//若已获取到access token,则加载应用信息 $c = new SaeTClient( WB_AKEY , WB_SKEY ,$_SESSION['oauth2']['oauth_token'] ,'' ); }
调用应用授权弹层
调用授权弹层时,页面背景用一张应用图片填充,给用户带来更好的体验。
站内应用审核
当您完成站内应用的开发并测试没有问题后,可以在站内应用的汇总信息页面点击“提交审核”按钮,将您的应用提交给平台工作人员进行审核。 我们的工作人员在收到您的申请后,会和您进行联络,并试用您所开发的应用,在确认应用开发已经完成并且可以正常使用后,会通过您的申请。
站内应用通过审核之后,将突破15个测试帐号的限制,可以被所有的微博用户所使用,并且自动被推荐到应用广场。
审核详情请参考:站内应用审核规范