技术问题

目录

我们提供了多种沟通方式,以快速解决您在开发中遇到的问题,请参考联系我们

API调用及应用开发问题

304 Not Modified 没有数据返回

获取的信息不存在时,接口不返回数据。如查询安装了应用的好友,好友为空。

40001 APP KEY不存在

oauth_consumer_key参数错误,请检查是否等于应用的api key,多数误用app id。

40002 用户调用次数超过限制

详情请查看接口访问频次

40004 应用信息错误

oauth_consumer_key参数错误,请检查是否等于应用的api key,多数误用app id。

40008请求的HTTP METHOD不支持

GET、POST反了。

40011应用类型错误,不是开心网连接

用站内应用调用OAuth授权接口,或直接用openid应用调用OAuth授权接口时会返回此错误。
解决方法:
1、如果您想开发站内应用,请使用js-sdk中的授权接口
2、如果您想开发开心连接或手机客户端,请重新申请应用,应用类型务必选择“连接开心网”。
3、如果您之前用openid实现的开心连接或手机客户端,现在更换到OAuth方式,也请重新申请应用,应用类型务必选择“连接开心网”。开发完毕后可引导用户重新授权,通过开心网uid可识别用户。

40012 client_id、client_secret参数无效

1、client_id参数错误,请检查是否等于应用的api key,多数误用app id。
2、client_secret参数错误,请检查是否等于应用的secret key

40017 应用没有被授权,无法使用所指定的grant_type

由于涉及将开心网用户的密码泄露给第三方应用,因此为保证开心网用户账号的安全性,本模式只会对与开心网合作极为紧密的合作方开放,且只对手机客户端类型的应用开放。开发者需要提前发邮件至app@corp.kaixin001.com申请,审核通过后方能使用。

40018 提供的Access Grant是无效的、过期的或已撤销的

通过Authorization Code获取Access Token 时,code参数错误或过期

40026 请求必须使用ssl连接

OAuth2.0必须使用https,不能用http

40028 request_token不存在

OAuth1.0获取access_token时oauth_token参数错误或为空

40029 应用没有权限调用此API

高权限接口申请后才能开通,如何申请请参考高级API调用申请

40031 记录:上传照片出错

若文件路径没错,请检查pic参数的content-type是否是开心网支持的以下5种格式:jpg/jpeg/gif/png/bmp
注:照片文件及其它参数以multiPart的方式传递

40036 记录:提交内容超过最大长度

最多140个汉字,280个英文

40043 记录:picurl下载错误

1、picurl必须能在公网上访问,不能有登录验证,不能跳转。
2、picurl需以图片格式结尾。

40101 Oauth access_token不存在

1、access_token参数赋值时出错
2、获取新的access_token后,仍然使用旧的access_token调用接口。
3、用户取消授权

40108 Oauth签名值不合法

oauth_signature参数错误,检查方法如下:
1、比较接口返回的base_string和自己的base_string是否完全一致,多数错误就出在这里。建议用字符串比较函数检查,不要用肉眼观察
2、检查key值中两个secret是否正确,是否多空格或缺少&符号的问题
3、如果前面两项两个都没问题,原因就是没有正确调用系统的签名算法了,请参考我们的SDK的调用方法或联系技术支持。

如果相同的代码,有时成功返回数据,有时报签名错误,那很可能是调用接口时oauth_signature参数未经过urlencode编码。导致oauth_signature没有某些特殊字符时客户端与服务端计算的签名就一致,含有时(如空格)签名就不一致。

40115 Oauth consumer_key不存在

用Oauth2.0方法调用接口时返回此错误,说明调用时access_token参数为空

40117 Oauth2.0 access token不合法

获取新的access_token后,仍然使用旧的access_token调用接口。

40302 请求的权限范围超过了数据拥有者所授予的权限范围

Scope中没有当前接口需要的权限
注:scope需在获取access_token的第一步设置,具体请参照各个获取方法的文档。

500 Internal Server Error 服务器内部错误

出现此错误请通知开放平台

用户授权后出现400页面,地址栏url是http://api.kaixin001.com/oauth/authorize

1、回调地址打不开
2、在回调地址页面获取access_token时返回400错误。
解决方法:IE浏览器只显示400页面,建议用chrome或firefox浏览器重新授权,查看开放平台返回的完整错误信息。

用户授权后出现授权验证码,或没有跳转到callback参数中设置的地址

回调地址需要在第一步获取request_token时设置,而不是在第二步授权时设置。如果第一步oauth_callback参数为空,授权后就会出现授权验证码。

没有收到dialog接口的回调

1、dialog回调地址在不能公网上访问,或需要登录验证。导致开心网服务器无法访问。
2、通过输出信息到屏幕判断是否有回调。这种方式输出的信息会显示在开心网服务器上,而不是用户的浏览器。判断是否有回调需要将信息输出到文件中,如日志。
3、支付接口没有设置callback参数。跟其它接口不同,支付接口的callback参数才是回调地址;redirect_uri是支付后的跳转地址。
回调地址检查

支付接口重复回调

为保证回调地址可以收到回调数据,会有队列程序向回调地址发送数据(支付成功后10分钟内)。队列会多次向回调地址发送该订单处理后的回调数据,直到回调地址返回“ok”。
因为会多次向回调地址发送成功数据,所以开发者必须自己做判断,防止多次处理同一订单。
注:所谓返回“ok”就是输出小写的ok一词,以php为例:echo ‘ok’; 如对自己的返回内容有异议请联系技术支持QQ,并提供支付订单的orderid,或应用app id和支付用户的uid。

Dialog接口iframe模式页面打开后空白

因为js跨域的问题,iframe模式只能在开心网站内使用。

视频接口已配置,但发布到记录时仍显示“附链接”

请检查所发的视频地址能否正常打开:1、是否有登录验证;2、是否有跳转,返回302代码。

使用JS出错

Js-sdk仅适用于站内应用,连接网站请使用其它语言的SDK。

授权后显示应用未审核

应用创建后、提交审核前只能用测试帐号,请使用创建应用的帐号,或在开发者管理里面添加帐号。

QQ登录帐号无法授权

请使用有开心网登录帐号、密码的用户。

如何将第三方网站帐号与开心网帐号绑定

Uid是开心网用户的唯一标识,建议用uid区分开心网帐号。
Oauth2.0和新授权的Oauth1.0a的access_token都是以uid_开头的,即第一个下划线之前的数字就是uid。
或者调用users/me接口获取当前用户的信息,提取其中的uid字段。

分享、同步网页内容到开心网可调用哪些接口

/records/add  发表一条记录(可带图)
/photo/upload  上传一张照片到指定照片专辑
/repaste/create 创建转帖
/diary/create 发表日记
/feed/send 发布好友动态
/dialog/feed 发布好友动态(有交互界面)

你也可以直接使用以下社交部件:(不要求申请应用)
分享部件
转帖部件

发记录时如何@好友

格式为@uid (uid后必须有一个空格)
注:跟uid是好友关系时才会转换为姓名

获取记录中的大图

返回图片地址中的_records-s换成_records-m

字数限制问题

记录:400字(中文),URL链接不算字数
转贴:10万字(中文)
照片: 专辑标题64字(中文);照片标题400字(中文)

判断新安装用户是不是被邀请的

被邀请的用户安装时,平台会把邀请者的UID放在from参数里,以GET方式传递给应用回调地址。
获取当前用户邀请成功的所有好友可通过获取用户邀请成功的好友uid列表接口获取

打开站内应用显示405错误

请去掉回调页面对post方法的限制;或者新建一个支持post方法的回调页面,从新页面再跳转

开源插件问题

安装成功后调接口出错

1、discuz插件请查看kx/log/kx_log.php文件中的错误日志,如有疑问请查看FAQ或联系技术支持。\ 2、其它插件请查看kxoauth目录下的errorlog.txt文件。

curl_init()函数未定义错误

请修改php设置。具体方法为:打开php安装目录下的php.ini文件,找到;extension=php_curl.dll这行,并将前面的“;”去掉。

discuz插件: 服务器获取Request Token失败

请查看kx/log/kx_log.php文件中的错误日志
1、有错误代码
请查看FAQ或联系技术支持。
如果是40004错误,很可能是安装时把key填成了app id。这时,直接修改kx/app.cfg.php文件中的define('KX_APP_KEY', '');
2、没有错误代码
1) 在服务器上运行ping api.kaixin001.com;如果ping不通,则检查是否有屏蔽IP等设置。
2) 如果能ping通,请检查php是否支持curl或fsockopen等函数。

Discuz插件:没有通过环境检查


如上图所示,请检查php.ini文件中的session.save_path是否是绝对路径,而且文件夹确实存在,如果没有问题该文件夹的读写权限,是否所有用户都可以读写。 没有权限的请联系空间提供商。

Discuz插件:删除登录按钮下的“一步搞定”

打开source\plugin\kaixin\template\login_button_global_login_extra.htm文件
删除<p class=“hm xg1” style=“padding-top: 2px;”>&#19968;&#27493;&#25630;& #23450;</p>

Discuz插件:500错误

请将php.ini 的 err display 设置 on,再次访问页面看是什么错误。

wap站内应用开发

如何调用2.0接口

用户进入wap2.0应用时,开心网会把verify以GET方式传递到应用信息里的回调地址,应用将verify的值赋值给session_key,用session_key调用2.0接口
注意:verify是在回调地址中获取到的,而不是应用页面url中的verify

wap2.0应用内跳转

创建应用时,需要将回调地址设置为目录地址,而不是某个文件(页面)的地址,否则无法跳转
应用中所有的页面路径都需要使用相对路径,使用绝对路径会跳出开心网
注:相对而言,图片地址需要使用绝对路径,否则无法显示图片。

旧版站内应用开发&API调用问题

站内应用页面如何实现高度自适应?

以下是实现应用页面高度自适应的代码,请添加到应用页面中。

function setHeight(){
	var dHeight = document.documentElement.offsetHeight;
	if("\v"=="v")
	{
		dHeight = document.documentElement.scrollHeight;
	}
	var t = document.createElement("div");
	t.innerHTML = '<iframe id="kxiframeagent" src="http://rest.kaixin001.com/api/agent.html#'+dHeight+'" scrolling="yes" height="0px" width="0px"></iframe>';
	document.documentElement.appendChild(t.firstChild);
}

注意事项:

  1. 页面html代码要有 <!DOCTYPE
  2. bodyonload 事件中调用 setHeight(); 方法
  3. 当页面中有javascript操作导致高度变化时,调用setHeight();方法重新刷新高度
  4. setHeight方法,应该在页面加载完(比如body的onload事件)和页面高度发生变化后执行
  5. 如果您的页面高度是固定的,建议将dHeight设置为常量

站内应用内如何获取 URL 参数?

应用首页可以获取get参数。以获取如下链接中的参数为例: http://www.kaixin001.com/!app_xxxx/?id=10335
http://www.kaixin001.com/!app_xxxx/?link=paylink&id=3

PHP例子:

$id = $_GET['id'];$link = $_GET['link']; 

如果希望组件地址跳转,可以根据get参数实现:

if ($id ==1 ) { 
转到A页面 
} else { 
转到B页面 
} 

开放API1.2如何调用?

目前开心网的API1.2调用不允许使用form表单提交的方式,请通过服务器程序发送GET或POST请求;Actions接口使用GET方式调用,产生交互页面;非Actions接口用POST方式调用,返回JSON/XML结果,详细请参考开放API文档

Session_Key错误的原因有哪些?

  1. 使用测试uid登录进入组件时,开心框架会传递一个参数session_key过来。Session_key是由当前组件以及测试uid来生成的。
  2. Session_key为空:测试uid没有登录。
  3. Session_key不正确,有可能是获取的session_key与配置文件中的app组件及测试uid不匹配。或者由于长时间没有操作导致session_key过期,session_key过期时间一般为几个小时。

MD5加密注意事项

在MD5前及64位编码前,参数一般需要进行排序。请确保md5以及64位编码的正确。

发送消息或者支付的交互页面无法弹出

  1. 建议使用英文字符进行测试,如果英文字符没有问题,则还是编码问题,解决办法同“数字签名错误”。
  2. 请根据提示的JSON错误信息来确定错误原因。
  3. 如果仍旧有问题,则需要查看参数的排序,是否有值,md5以及64位编码问题等等。

1011错误的原因有哪些?

  1. 版本号v值不正确;
  2. 版本号v值为空 或 提交参数方法不正确,接口无法接收正确参数。比如:用表单提交POST请求;用POST方法请求Actions接口;用GET方法请求非Actions接口。

1003数字签名错误的原因有哪些?

  1. 参数没有按照规定排序
  2. 参数中包含中文字符时发生错误,建议先使用英文字母来测试,如果测试通过,中文字符发生错误,应该是中文字符编码问题,建议使用开放API示例代码中md5之前的字符串及md5之后的字符串进行程序中的md5方法测试。推荐使用GB2312编码。