# 问卷调查(选接)
# 接入流程
在游戏客户端接入问卷调查接口前,请按照如下步骤添加问卷并创建相应的问卷活动:
1、登录腾讯问卷后台 (opens new window),创建问卷(一般由运营人员负责),并在创建或编辑问卷时,于“设置 > 回收设置 > Webhook”栏目中设置用户完成问卷调查时的回调地址,格式如:https://发行主体域名/api/survey/callback/handle
,详情请咨询SDK服务端开发人员:王乾龙;
2、获取创建好的问卷ID,将其提供给游戏客户端研发,对应下文问卷调查接口中的 surveyId
参数;
3、登录SDK客服系统后台,进入“腾讯问卷 > 配置活动”页面,创建相应的问卷调查活动(一般由运营人员负责),设置所属游戏、活动名称、问卷、奖励道具、邮件标题及邮件内容等信息;
4、游戏服务端需向SDK开放平台服务端提供问卷奖励发放接口,用于在玩家完成问卷时通过游戏内邮件的形式,向其发放相关问卷奖励(如游戏内道具),接口协议请阅读下文“问卷奖励发放”,详情请咨询SDK服务端开发人员:王乾龙;
5、上述准备工作完成后,游戏客户端方可正常接入并调用问卷调查接口。
# 接口说明
用于从游戏内跳转至问卷调查页面(小程序版)。
sdkInstance.openSurvey(options);
最低基础库版本要求
若用户客户端基础库版本低于 2.2.0
,调用 sdkInstance.openSurvey(options)
接口将中断用户当前操作并弹出升级提示,不会报错!
# 参数说明
参数说明如下表所示:
选项 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
areaId | string / number | 否 | 1 | 游戏大区ID,若游戏无大区概念,可不填,默认值为 1 ,表示初始大区编号 |
roleId | string / number | 否 | 同 accountId | 角色ID,若游戏无角色概念,可不填,默认值同 accountId 账号ID |
roleName | string | 否 | -- | 角色昵称 |
roleLevel | number | 否 | 1 | 角色等级,若游戏无角色及等级概念,可填关卡等级或不填,默认值为 1 |
surveyId | number | 是 | -- | 问卷ID,由相关运营人员负责提供 |
success | function | 否 | -- | 接口调用成功的回调函数(注意,该回调函数被触发时,仅表示当前接口调用成功,如成功跳转至了问卷调查页面,并非代表用户实际完成了问卷填写,问卷填写完成且发放奖励应以游戏服务端下发通知为准) |
fail | function | 否 | -- | 接口调用失败的回调函数 |
complete | function | 否 | -- | 接口调用完成的回调函数,成功或失败均会调用 |
# 示例代码
注:示例代码中的参数或选项均为演示数据,仅供参考,谢谢!
// 若用户客户端基础库版本低于 2.2.0,调用此接口将中断用户当前操作并弹出升级提示,不会报错!
sdkInstance.openSurvey({
areaId: 1001,
roleId: "123456",
roleName: "小朋友",
roleLevel: 1,
surveyId: "xxxxxx",
success: function(response) {
// 该回调函数被触发时,仅表示当前接口调用成功,如成功跳转至了问卷调查页面,并非代表用户实际完成了问卷填写,问卷填写完成且发放奖励应以游戏服务端下发通知为准
console.log(response);
},
fail: function(error) {
// 此处返回接口调用失败的错误信息,error.code为cancel时,表示用户主动取消了跳转,此时可以不向用户弹出提示
if (error.code === "cancel") {
return;
}
// 此处可向用户弹出接口返回的错误消息或统一弹出“打开问卷调查失败”
sdkInstance.modal.message(error.message);
},
complete: function(result) {
// do something here...
}
});
# 问卷奖励发放
一般情况下,若游戏内使用问卷调查,可能会要求在玩家完成问卷时向其发放相关问卷奖励(如游戏内道具);如果有此需求,则游戏服务端需向SDK开放平台服务端提供道具发放接口,接口需遵循如下协议:
# 简要概述
道具发放接口,用于游戏内向玩家发放指定游戏道具。
# 接口协议
HTTPS
# 请求方式
POST
# 请求数据类型
Content-Type: application/json
# 请求体
选项 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
orderid | string | 是 | -- | 订单唯一编号 |
surveyId | number | 是 | -- | 问卷ID |
accountId | number | 是 | -- | 游戏角色ID |
areaId | number | 否 | -- | 游戏大区ID,若游戏无大区概念,可不填或填1 |
server_id | string | 否 | -- | 游戏服务器ID,若游戏无服概念,可不填或填1 |
items | array | 是 | -- | 待发放的游戏道具列表 |
items[0].item | string | 是 | -- | 游戏道具ID |
items[0].count | number | 是 | -- | 发放数量 |
sign | string | 是 | -- | 签名字符串,签名规则请咨询SDK开放平台服务端开发人员:王乾龙 |
timestamp | number | 是 | -- | 时间戳 |
title | string | 是 | -- | 邮件标题 |
content | string | 是 | -- | 邮件内容 |
field1 | object | 否 | -- | 备用字段 |
请求体示例
{
"orderid": "order_23123123dadawd13e1",
"surveyId": 12345,
"accountId": 8015,
"areaId": 1,
"server_id": "1",
"items": [
{
"item": "X014",
"count": 1
}
],
"sign": "2321dasd1321312",
"timestamp": 15689656565,
"title": "邮件标题",
"content": "邮件内容",
"field1": "备用字段"
}
# 接口响应
选项 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
code | number | 是 | -- | 状态码
|
message | string | 是 | -- | 成功或错误消息 |
响应示例
{
"code": 1,
"message": "ok"
}