# 问卷调查(选接)

# 接入流程

在游戏客户端接入问卷调查接口前,请按照如下步骤添加问卷并创建相应的问卷活动:

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

状态码

  • 0 - 发送失败
  • 1 - 发送成功
  • -1 - 角色不存在
  • -2 - 帐号不合法
  • -3 - 不允许发送
  • -4 - 数量不合法
  • -5 - 网络断开
  • -6 - 服务器断开
  • -7 - 服务器断开
  • -8 - 订单号重复
message string -- 成功或错误消息

响应示例

{
  "code": 1,
  "message": "ok"
}
Last Updated: 2024/11/10 18:46:15