导入抽样数据

开发者可在“自定义模板-模板管理-开发中模板-实现模板-导入抽样数据”下载导入数据协议文档,并根据协议文档,导入抽样数据。

当开发者通过后台接口成功导入抽样数据后,右侧显示的状态将自动由“未导入”转移为“审核中”。微信侧将对导入的抽样数据进行评测。评测结果将在3个工作日内进行反馈。导入的数据需要与所提供的服务强相关,且真实有效,以股票查询服务为例,所导入的股票代码与上市公司名称不应包含虚假公司与虚假代码。

抽样数据可选取20%的优质部分进行导入,且总量不得超过10万条。导入的优质数据将有利于微信平台分析与挖掘,以更好理解开发者的服务,并最终应用在搜索场景上。真实、优质的抽样数据,将获得更佳的用户展现效果及更多精准流量。反之,若开发者导入低质、甚至是恶意引流的抽样数据,平台侧将会根据违规程度做出相应惩罚。

注:开发者每次导入的抽样数据将覆盖之前所导入的数据,因此每次都需要进行全量的导入。

导入抽样数据

开发者在导入抽样数据后,可通过微信客户端-小程序搜索,搜索测试集数据相关的query,测试自定义模板的展示。

1. 获取ACCESS_TOKEN

开发者需要获取ACCESS_TOKEN作为接口调用凭证,文档详见获取access_token。 (注意,access_token需要使用小程序的AppID和AppSecret进行获取)

2.组建json

开发者根据约定的数据格式来组装json,参考格式如下:

字段名称 字段类型 说明
lifespan unsigned int32 数据有效时间,秒为单位,一般为86400,一天一次导入的频率
query string 固定为"{\"type\":XXXXX}",用于标识数据所属的服务类目,注意该字段为string类型而不是object
scene int32 1代表用于搜索的数据
data string 推送到微信后台的数据列表,该数据被微信用于流量分配,注意该字段为string类型而不是object
{
    "lifespan": 86400,
    "query": "{\"type\":XXXXXX}",
    "scene": 1,
    "data": "your custom data to push"
}

3. 导入数据

第三方通过调用微信API,将数据写入到setdynamicdata这个API。每个Post数据包不超过5K,若数据过多可开多进(线)程并发导入数据(例如:数据量为十万量级可以开50个线程并行导数据)。

http请求方式:POST
http(s)://api.weixin.qq.com/wxa/setdynamicdata?access_token=ACCESS_TOKEN

{"lifespan": 86400,"query": "{\"type\":XXXXXX}","scene": 1,"data": "your custom data to push"}

4. 代码示例

以股票查询服务为例,query字段中type定义为:

key 说明 定义
type 类型编号 1000001

data字段的定义:

字段名称 字段类型 说明
items array 数据内容见items数组数据定义
attribute object {"id":"XXX", "seq": i, "count": M, "totalcount": N}.
id为此批数据的唯一id,注意同一批数据可能分多次api推送,这多次推送的id必须是一致的;
seq为多次推送的递增序列,为0到n-1,第一次推送seq为0,第二次推送seq为1,以此类推;
count为此次api推送的数据条数;
totalcount为此批数据的总条数,sum(count(0).size() + ... +count(n-1).size()),即所有api推送数据条数总和。

items数组中数据定义为:

key 说明 示例
stock_code 股票代码 例如:0700
stock_name 股票名称 例如:腾讯控股
stock_market 股票市场 例如:hk

最终导入数据:

https://api.weixin.qq.com/wxa/setdynamicdata?access_token=ACCESS_TOKEN

{
    "lifespan": 86400,
    "query": "{\"type\":100001}",
    "scene": 1,
    "data": "{\"items\":[{\"stock_name\":\"腾讯控股\", \"stock_code\":\"00700\", \"stock_market\":\"hk\"}], \"attribute\":{\"count\":2, \"totalcount\": 100, \"id\": \"XXX\", \"seq\": 0}}"
}