站内应用

站内应用简介

站内应用是开心网为第三方提供应用框架,第三方将产品接入开心网运营的一种合作模式。通过接入开心网站内应用,第三方可以将产品与开心网高度整合,如利用好友关系、发布动态、邀请等接口,实现产品的社交化传播与运营;用户安装应用后,你的产品就会出现在应用中心、用户个人主页左侧应用列表中;另外,你还可以利用支付接口,方便地实现虚拟币兑换、道具购买,实现产品的收入目标。

已经有大量优秀的应用接入开心网,并取得产品或财务的成功,可以查看以下典型应用:欢聚斗地主我的王国Q将三国彩票

关于第三方应用的分成策略,请查看应用分成策略

应用框架

开心网站内应用框架如下图所示,第三方应用以iframe方式嵌入此框架中(iframe的地址是你在创建应用时填写的“回调地址”)。
框架宽度为815px,高度实现了自适应。因此,开发者只需要限制好应用的宽度即可,框架会根据应用高度对页面高度进行自适应调整。

                        图:站内应用框架示意图

接入流程

下面是站内应用接入的基本流程:

1. 创建应用

如果您是第一次创建应用,需要首先注册为开发者;填写开发者信息,并成功验证邮箱后即注册为开心网开放平台的开发者。开心网通过您留下的手机号码、邮箱等与您联系,请务必如实填写。如信息填写有误,可能造成应用审核延迟或无法通过。如果在注册开发者过程中有问题,请参考注册开发者详细说明或咨询在线产品支持

注册为开发者后,您就可以创建应用了。请进入开放平台我的应用页面,点击右上方的“创建新应用”按钮,选择“站内应用”类型,填写应用名称并同意开发者协议即完成应用创建。

1) 点击“创建新应用”按钮

2) 选择“站内应用”类型

3)填写应用名称完成创建

2. 编辑应用信息

2.1 应用基本信息

基本信息每项均为必填,填写完毕务必点击“保存”按钮。

2.2 应用地址

1) 应用主页:即应用在开心网的首页地址,用户通过此地址访问应用
2) web回调地址:即应用的实际地址,开心网将此地址嵌入到第三方应用框架中
3) wap站内应用:如果您想将应用接到开心网wap端(wap.kaixin001.com),您还需要填写以下内容:
 ·wap回调地址:即应用的实际地址,开心网将此地址的内容嵌入到wap端页面
 ·HTML5开发:应用是否采用HTML5开发,以及显示方式

2.3 应用图标

应用图标用于应用中心列表页、个人页面应用菜单、动态流等处,务必按照要求上传相应格式、大小的图片资源。

注意:由于图标多放在有背景色的页面中,因此图标底色需设置为透明或非白色的其他颜色,这样才能与开心网的整体页面风格协调起来;
请开发者务必按照要求的格式、大小提供相应的图标和截图;图标不合格会影响应用的审核、上线。

3. 开发与测试

应用创建完毕后即可获取APP ID/API Key/Secret Key,同时您就获得了开心网开放API的调用权限。

3.1 应用授权

注意:wap应用无需开发授权,开发者请查看3.5 WAP站内应用开发
为了实现个性化、社交化的功能,应用需调用开心网开放平台提供的各种接口,如获取用户信息、发布动态等;要调用这些接口就需要获得用户授权,开心网站内应用授权采用OAuth2.0协议用户授权应用后,应用才会出现在用户左侧应用列表处;因此,站内应用必须开发应用授权功能,如没有授权功能,应用将无法审核通过

特别注意:
1) 从2012年3月7日开始,开心网“站内应用”的授权将采用OAuth2.0协议
2) 3月7日12:00以后注册的应用,都必须采用新的授权协议,新的应用将不再支持Session Key调用接口的方式
3) 3月7日12:00以前注册的应用仍可使用Session Key方式调用接口,相关文档可参考旧版组件接入开发

OAuth2.0的授权流程如下图所示。当用户访问您的应用,开心网站内应用框架会通过HTTP POST 发送signed_request 参数到您的应用首页URL。signed_request参数的内容是base64url 编码的JSON object。

用户未授权signed_request 包含如下字段:

字段名类型说明
userarray
algorithmstring现在只支持HMAC-SHA256
issued_atint服务端生成时间, unix timestamp格式

用户未授权,需要应用自行判断,并调用授权弹层,引导用户进行授权。

用户已授权signed_request 包含如下字段:

字段名类型说明
userstring用户对象
algorithmstring现在只支持HMAC-SHA256
issued_atinttoken生成时间,unix timestamp格式
expiresinttoken 过期时间,unix timestamp格式
oauth_tokenstringoauth2.0的access_token
user_idunit用户ID
如何判断用户是否已授权

当用户进行授权操作后,用户浏览器将被重定向到应用首页(即http://www.kaixin001.com/!app_xxxxxx/),这时您的应用首页就能接收到包含access_token的signed_request参数。 以下代码演示了如何解析signed_request参数,并判断用户是否授权:

<?php
session_start();
require_once('config.php');
require_once('kxClient.php');
$access_info = '';
$base64String = $_POST['signed_request'];
$kxOauthBase = new KXOauthBase(KX_AKEY, KX_SKEY, KX_CALLBACK_URL);
$access_info = $kxOauthBase->parseSignedRequest($base64String);
if(empty($access_info["user_id"])){
    include "auth.php";
	exit;
}else{
	$_SESSION['access_token'] = $access_info["oauth_token"];
	$_SESSION['user_id'] = $access_info["user_id"];
	header("Location:demolist.php");
}
?>
如何调用授权弹层

开发者需要在弹出授权弹层的页面引用JS SDK的url:

<script src="http://s.kaixin001.com.cn/js/openapp-8.js" language="JavaScript"></script>

调用JS SDK的授权函数:

<style>
body{
	background:url(""); //页面背景图
}
</style>
function openAuthDlg()
{
        var p = {"app_id":<?=KX_APPID ?>,"display":"iframe","redirect_uri":"<?=KX_CALLBACK_URL ?>","scope":"basic create_records friends_intro send_message"};
        KX.login(p);
}
</script>
<body onload="openAuthDlg();">

更多开发资料请参考:站内应用开发指南下载站内应用PHP DEMOJS SDKAPI文档

注意:为了提供更好的用户体验,您的授权页面背景最好用一张应用背景填充。

3.2 常用 API

功能分类接口名称接口说明
授权认证OAuth2.0授权流程
用户信息/users/me获取当前登录用户的资料
/users/show根据UID获取多个用户的资料
好友关系/friends/me获取当前登录用户的好友资料
/friends/add添加好友
应用信息/app/status获取用户安装应用的状态
/app/friends获取当前用户安装应用的好友uid列表
/app/invited获取某用户邀请成功的好友uid列表
/app/rate_limit_status查询当前APP剩余请求次数
社交传播/dialog/feed发布好友动态(有交互界面)
/dialog/invitation发送邀请(有交互界面)
/dialog/sysnews发送系统消息(有交互界面)
支付/dialog/pay支付接口(有交互界面)
平台基础功能/records/add发表一条记录(可带图)
/album/create创建一个照片专辑
/photo/upload上传一张照片到指定照片专辑
/gift/send赠送礼物
社交部件分享部件将网页内容方便地分享到开心记录中
粉丝部件让用户方便地加为你公共主页的粉丝
评论部件让用户方便地对你的应用发表评论内容

JS SDK中包含了一些API2.0调用示例,请在开发时参考;更多API说明,请参考API文档

3.3 开通支付

1) 支付接口:开心网为第三方提供了一套便捷的支付接口,如需开发支付功能,请参考支付接口说明,应用正式上线之前,应用的管理员、开发者和测试用户都可以使用此接口,但除此之外的普通用户无法使用

2) 测试开心币:为了便于开发者测试支付功能,开心网为开发者提供了测试开心币,您可以在“支付信息”中为测试用户添加“测试开心币”,一次可以添加100元测试币。注意:测试开心币仅能用户应用的测试,无法在平台或其它应用中消费

3) 开通支付:应用在正式上线之前,仅测试用户可使用开心币支付功能;如需正式开通支付功能,需与开心网开放平台联系,签署支付相关协议后即可开通。联系邮箱:app@corp.kaixin001.com,商务问题咨询QQ:1825253520

3.4 应用测试

为防止不完整的功能外泄,影响用户体验,第三方应用在上线前,只有测试用户才能访问;应用测试地址即你在编辑应用信息时填写的“应用主页”地址(http://www.kaixin001.com/!app_xxxxxx/)

请到应用的“开发人员管理”页面,添加开发人员;开发人员分为四类,每类对应不同的权限,请根据情况添加,详细如下表所示:

角色重置Secret Key删除应用添加开发人员编辑应用信息测试未上线的应用查看统计数据测试开心币人数上限
管理员2
开发者×××2
测试用户×××××10
数据用户××××××2

关于添加开发人员的方法,请参考添加开发人员说明

3.5 WAP站内应用开发

WAP站内应用目前不采用OAuth2.0协议授权;用户登录WAP开心网,进入应用进行操作时,平台根据当时被访问的用户,所在的应用,以及当时的时间,产生 verify,并自动传给应用。
此处获取的 verify 就是调用接口所需要的 session_key,WAP站内应用通过此 verify 调用平台的API2.0接口,验证登录用户身份,并获取被访问用户和登录用户的信息。
另外,平台对于WAP站内应用HTML代码和标签有一定的要求,开发时请参照WAP类站内应用HTML规范
session_key调用方法

4. 提交审核

应用信息填写完成,应用功能开发开发完毕后,就可以提交审核了。

提交审核后,开放平台工作人员会在1-2个工作日内,通过邮件或电话将审核结果告诉您。为了更快地通过审核,请在提交前参考第三方站内应用审核标准

第三方站内应用可以自行添加广告,但必须符合开心网的广告规则,详情请查看嵌入广告规范

特别说明:游戏类应用需通过游戏运营资质审查才能正式运营,资质审查通过前为**试运营**阶段,不开通开心币支付功能,应用添加人数
也有一定的限制

5. 上线运营

应用审核通过后,经过您的同意,就可以上线了。上线后注意事项:

5.1 日常运营检查

开心网会对站内应用的日常运营做一些检查工作,如果发现问题,会及时通知您修改。请参考违规处理原则

5.2 设置维护信息

如果您的应用需要停机维护,您可以在“运营信息”中进行设置;如果维护时间小于6个小时,无需审核;如果维护时间超过6个小时,需要审核通过后才能生效。如下图所示:

5.3 官方公共主页和官方群

您可以建立应用的官方公共主页和官方群组,以便及时与用户交流,解决用户在组件使用中遇到的各种问题。
站内应用上线后,你可以到“运营信息”中,设置与应用关联的公共主页和设置官方群,如下图所示:

如果您在关联官方公共主页和群的过程中遇到问题,请联系我们,开心网开放平台有专人为你提供帮助。

5.4 应用推广

开心网为第三方应用提供了一些推广位,如应用中心页面顶部、个人首页右下角等,详情请查看第三方应用推广策略

5.5 停止运营须知

为了确保用户体验,如果您的应用要停止在开心网运营,请务必遵循以下规范:

1. 非游戏类应用至少提前1个月在应用中挂出停止运营的通知
2. 游戏类应用需至少提前2个月挂出停止运营的通知
3. 已开通支付功能的应用,需至少提前3个月挂出停止运营的通知;并要确认在停止运营前,用户兑换的虚拟币已消费完毕;如要提前下线,需与开放平台联系,确认用户补偿方案,联系邮箱:app@corp.kaixin001.com
4. 停止运营通知需放置在应用页面的显要位置,如在应用页面上部放置图片Banner或文字链,确保用户很容易看到

如果对停止运营须知有疑问,请咨询在线产品支持或发邮件至app@corp.kaixin001.com

5.6 查看应用数据

开心网开放平台为第三方提供组件相关运营数据,目前主要包括三类:用户数据(包括活跃人数、添加/卸载人数、保留率及用户人口统计分布)、传播数据和交易数据(充值人数、充值金额,ARPU值)。

查看方法:登录开放平台 ⇒ 进入我的应用 ⇒ 点击应用名称 ⇒ 进入应用详情页 ⇒ 点击数据统计即可查看,如下图所示: