-
小程序可以通过下面列出的API读取、写入、删除、清理本地缓存数据。与LocalStorage类似。本地缓存数据以用户+小程序纬度隔离,同一台设备上,不同用户之间、不同小程序之间,本地缓存数据不可互访。⚠️注意本地缓存数据的上限约为10MB,同时也受到用户设备存储空间、缓存清理等机制的限制,可能会导致信息丢失。因此请不要将重要数据存放在本地数据缓存
APIChecklistgetStoragegetStorageSyncsetStoragesetStorageSyncremoveStorageremoveStorageSyncclearStorageclearStorageSyncgetStorageInfogetStorageInfoSync
本地缓存数据类型小程序默认支持以下数据类型,存储和获取时无需类型转换。其它数据类型可根据需要在处理时转换为字符串存储,强行操作会导致数据丢失。StringObjectArrayNumberDateBooleanUndefinedNull
-
检测图片是否包含违法违规内容
接口地址POSThttps://developer.toutiao.com/api/v2/tags/image/⚠️注意该接口请在开发者服务器端请求
输入
请求Headers名称描述X-Token小程序access_token,参考登录凭证检验
请求Body{targets:[ad,porn],tasks:[{image:https://image.url}]}名称描述targets图片检测服务类型,目前支持porn、politics、ad、disgusting四种tasks检测任务列表image检测的图片链接
输出正确返回的JSON如下:{log_id:2019010320551501001001621510071,data:[{code:0,task_id:d18197c4-0f56-11e9-99a5-0242ac110004,data_id:null,cached:false,predicts:[{prob:1,model_name:image_ocr,target:ad},{prob:0,model_name:image_qrcode,target:ad}],msg:ok},{code:0,task_id:d1aedc02-0f56-11e9-99a5-0242ac110004,data_id:null,cached:false,predicts:[{prob:0.0005013857153244317,model_name:image_porn,target:porn},{prob:0.022131478413939476,model_name:image_vulgar,target:porn}],msg:ok}]}名称描述log_id请求iddata检测结果列表code检测结果-状态码msg检测结果-消息data_id检测结果-数据idtask_id检测结果-任务idpredicts检测结果-置信度列表target检测结果-置信度-服务/目标model_name检测结果-置信度-模型/标签prob检测结果-置信度-概率,值为0或者1,当值为1时表示检测的图片有违法违规内容比如是广告当access_token检验失败时会返回如下信息:{error_id:dd60b2bef95f40d7a4ace0bf5130d2e7,code:401,message:Authenticationcredentialswerenotprovided.,exception:Authenticationcredentialswerenotprovided.}
-
以查询游戏币余额的接口为例
原始请求信息支付秘钥key:da8d182e1cashjkulkof6ae22a4a918457HTTP请求方式:POST请求的URI:/api/apps/game/wallet/get_balance
签名算法参与签名请求参数{openid:fge35vh5h3f2,appid:tthdch45hd2df,zone_id:1,access_token:hds2rt6bhgh5wfg5nf4gdh6,ts:1507530737,pf:android}对参与签名的参数按照key=value的格式,并按照参数名ASCII字典序升序排序如下:stringA=access_token=hds2rt6bhgh5wfg5nf4gdh6&appid=tthdch45hd2df&openid=fge35vh5h3f2&pf=android&ts=1507530737&zone_id=1拼接uri、method:stringB=stringA+&org_loc=/api/apps/game/wallet/get_balance&method=POST把支付秘钥作为key,使用HMAC-SHA256得到签名sig=hmac_sha256(key,stringB)。sig=hmac_sha256(key,stringB)=4317496a530d0593fa4365ca87714a12c9e6edd4df1fea5fe1f5e5d6a1781a78
-
有时,自定义组件模版中的一些节点,其对应的自定义组件不是由自定义组件本身确定的,而是自定义组件的调用者确定的。这时可以把这个节点声明为“抽象节点”。例如,我们现在来实现一个“选框组”(selectable-group)组件,它其中可以放置单选框(custom-radio)或者复选框(custom-checkbox)。这个组件的ttml/wxml可以这样编写:在selectable-group.ttml中:view:for={{labels}}labelselectabledisabled={{false}}/selectable{{item}}/label/view其中,selectable不是任何在json文件的usingComponents字段中声明的组件,而是一个抽象节点。它需要在componentGenerics字段中声明:{componentGenerics:{selectable:true}}
使用包含抽象节点的组件在使用selectable-group组件时,必须指定selectable具体是哪个组件:selectable-groupgeneric:selectable=custom-radio/这样,在生成这个selectable-group组件的实例时,selectable节点会生成custom-radio组件实例。类似地,如果这样使用:selectable-groupgeneric:selectable=custom-checkbox/selectable节点则会生成custom-checkbox组件实例。注意:上述的custom-radio和custom-checkbox需要包含在这个ttml对应json文件的usingComponents定义段中。{usingComponents:{custom-radio:path/to/custom/radio,custom-checkbox:path/to/custom/checkbox}}
抽象节点的默认组件抽象节点可以指定一个默认组件,当具体组件未被指定时,将创建默认组件的实例。默认组件可以在componentGenerics字段中指定:{componentGenerics:{selectable:{default:path/to/default/component}}}注意:节点的generic引用generic:xxx=yyy中,值yyy只能是静态值,不能包含数据绑定。因而抽象节点特性并不适用于动态决定节点名的场景。
-
检测一段文本是否包含违法违规内容
接口地址POSThttps://developer.toutiao.com/api/v2/tags/text/antidirt⚠️注意该接口请在开发者服务器端请求
输入
请求Headers名称描述X-Token小程序access_token,参考登录凭证检验
请求Body{tasks:[{content:要检测的文本}]}名称描述tasks检测任务列表content检测的文本内容
输出正确返回的JSON如下:{log_id:2018112821375501001506902813132,data:[{code:0,task_id:d0229abe-f312-11e8-966d-0242ac110009,data_id:null,cached:false,predicts:[{prob:1,model_name:antidirt,target:default}],msg:ok}]}名称描述log_id请求iddata检测结果列表code检测结果-状态码msg检测结果-消息data_id检测结果-数据idtask_id检测结果-任务idpredicts检测结果-置信度列表target检测结果-置信度-服务/目标model_name检测结果-置信度-模型/标签prob检测结果-置信度-概率,值为0或者1,当值为1时表示检测的文本包含违法违规内容当access_token检验失败时会返回如下信息:{error_id:dd60b2bef95f40d7a4ace0bf5130d2e7,code:401,message:Authenticationcredentialswerenotprovided.,exception:Authenticationcredentialswerenotprovided.}
-
本接口应在后端服务器调用扣除游戏币。开通小游戏支付后,可以调用该接口扣除某个用户的游戏币。接口调用异常,可以通过相同的订单号再次请求该接口,不会重复扣款。POSThttps://developer.toutiao.com/api/apps/game/wallet/game_pay
请求参数属性类型默认值是否必填说明openidstring是用户唯一标识appidstring是小程序唯一标识offer_idstring否扩展字段,目前未使用,可不填tsnumber是UNIX时间戳,单位秒zone_idstring是游戏服务器大区id,游戏不分大区则默认填写1。如果应用支持多角色,则角色ID接在分区ID后,用_连接pfstring是平台安卓:androiduser_ipstring否用户外网IPamtnumber是扣除游戏币数量,不能为0bill_nostring是订单号,业务需要保证全局唯一。相同的订单号不会重复扣款。长度不超过63,只能是数字、大小写字母_-pay_itemstring否道具名称app_remarkstring否备注,会写到账户流水sigstring否扩展字段,目前未使用,可不填access_tokenstring是身份验证mp_sigstring是支付签名,本次请求的所有非空参数+uri+支付密钥,用HMAC-SHA256签名
返回值Object,包含以下属性属性类型说明errcodenumber错误码errmsgstring错误信息bill_nostring订单号,有效期是48小时balancenumber预扣后的余额used_gen_amtnumber本次扣的赠送币的金额
errcode枚举说明值说明0请求成功-1系统繁忙,此时请开发者稍候再试90009mp_sig签名错误90010用户未登录或登录态已过期90011sig签名错误90012订单已存在90013余额不足90017没有调用接口的权限90018参数错误
POST数据格式:JSON{openid:fge35vh5h3f2,appid:tthdch45hd2df,zone_id:1,mp_sig:d1f0a41272f9b85618361323e1b19cd8cb0213f2,access_token:hds2rt6bhgh5wfg5nf4gdh6,ts:1507530737,pf:android,amt:10,bill_no:1234567890000}
-
校验数据合法性当开发者通过getUserInfo接口请求到敏感数据时,返回的signature字段是在小程序服务器端通过如下算法得到:signature=sha1(`${rawData}${session_key}`)开发者可以在自己的服务器端执行同样的算法,来校验数据是否合法。
解密敏感数据对称解密使用的算法为AES-128-CBC,数据采用PKCS
7填充。对称解密的目标密文为encryptedData。对称解密秘钥aeskey=Base64_Decode(session_key),aeskey长度为16Byte。对称解密算法初始向量为Base64_Decode(iv)。
-
检查用户当前的session状态是否有效。
输入继承标准对象输入,无扩展属性
输出各callback参数均无额外属性
代码示例 tt.checkSession({success(res){console.log(`session未过期`);},fail(res){console.log(`session已过期,需要重新登录`);}});