wx.modifyFriendInteractiveStorage(Object object)

基础库 2.7.7 开始支持,低版本需做兼容处理

修改好友的互动型托管数据,该接口只可在开放数据域下使用。

参数

Object object

属性类型默认值必填说明最低版本
keystring需要修改的数据的 key,目前可以为 '1' - '50'
opNumnumber需要修改的数值,目前只能为 1
operationstring修改类型
toUserstring目标好友的 openId
titlestring分享标题,如果设置了这个值,则在交互成功后自动询问用户是否分享给好友(需要配置模板规则)2.9.0
imageUrlstring分享图片地址,详见 wx.shareMessageToFriend 同名参数(需要配置模板规则)2.9.0
imageUrlIdstring分享图片 ID,详见 wx.shareMessageToFriend 同名参数(需要配置模板规则)2.9.0
quietbooleanfalse是否静默修改(不弹框),静默修改需要用户通过快捷分享消息卡片进入才有效,代表分享反馈操作,无需填写 toUser,直接修改分享者与被分享者交互数据2.9.0
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.operation 的合法值

说明最低版本
add

object.fail 回调函数

参数
Object res
属性类型说明
errMsgstring错误信息
errCodenumber错误码

res.errCode 的合法值

说明最低版本
-17006非好友关系
-17007非法的 toUser openId
-17008非法的 key
-17009非法的 operation
-17010非法的操作数
-17011JSServer 校验写操作失败

示例代码

  1. wx.modifyFriendInteractiveStorage({
  2. key: '1',
  3. opNum: 1,
  4. operation: 'add',
  5. toUser: '', // 好友的 openId
  6. title: '送你 10 个金币,赶快打开游戏看看吧', // 2.9.0 支持
  7. imageUrl: 'image/xxx' // 2.9.0 支持
  8. })

赠送动作的校验

调用该接口需要上传 JSServer 函数 "checkInteractiveData",该函数可用于执行赠送动作的校验逻辑,校验通过后返回结果表示本次赠送是否合法。只有 checkInteractiveData 返回了 {ret: true},此次修改才会成功。

使用模板规则进行交互

每次调用该接口会弹窗询问用户是否确认执行该操作,2.9.0 之后版本,需要在 game.json 中设置 modifyFriendInteractiveStorageTemplates 来定制交互的文案。modifyFriendInteractiveStorageTemplates 是一个模板数组,每一个模板需要有 key, action, object 参数,还有一个可选参数 ratio,详细说明见示例配置:

  1. {
  2. "modifyFriendInteractiveStorageTemplates": [
  3. {
  4. "key": "1", // 这个 key 与接口中同名参数相对应,不同的 key 对应不同的模板
  5. "action": "赠送", // 互动行为
  6. "object": "金币", // 互动物品
  7. "ratio": 10 // 物品比率,opNum * ratio 代表物品个数
  8. }
  9. ]
  10. }

最后生成的文案为 "确认 ${action} ${nickname} ${object}?",或者 "确认 ${action} ${nickname} ${object} x ${opNum * ratio}?"

使用自定义文案进行交互

2.7.7 之后,2.9.0 之前的版本,文案通过 game.json 的 modifyFriendInteractiveStorageConfirmWording 字段配置。配置内容可包含 nickname 变量,用 ${nickname} 表示,实际调用时会被替换成好友的昵称。示例配置:

  1. {
  2. "modifyFriendInteractiveStorageConfirmWording": "确认送给${nickname}一个体力?"
  3. }

2.9.0 之后,在 modifyFriendInteractiveStorageTemplatesmodifyFriendInteractiveStorageConfirmWording 都存在的情况下,会优先使用前者。