微信小游戏关系链能不能获取到服务器,关系链互动数据

2023-11-18

# 关系链互动数据

在开放 关系链数据能力 的基础上,小游戏新增 互动型托管数据 ,提供关系链互动能力,用于实现小游戏内微信好友互动(点赞,送礼物等)的功能。

d7a717be0a9701c7429d8213a5e6ff3e.png

关系链互动数据能力支持: 好友间互赠 50 种游戏内道具

提供成功互动后的主域回调,满足互动后激励的场景。

开发者配置互动交互文案后,用户可在微信游戏其他场景,获得互动提醒。

用户发起互动后,可通过微信分享消息告诉好友。

从定向分享进入游戏,可向分享发起者发起一次免确认的互动,用于满足分享后激励的场景。

关系链互动能力 已支持的场景举例:

以下描述中,金币、皮肤为游戏数据,点赞数为托管数据。

A 与 BC 为微信好友。 B为游戏注册用户;C 为游戏流失或未注册用户。

游戏场景 备注 A 赠送 B 金币,并微信告诉他

A 给 B 赠送金币,A可获得金币奖励

A 微信邀请 C(流失或新用户),C 进入游戏后,A 金币+1,C 金币+1 结合定向分享能力

A 微信向 B 索要点赞,B 进入游戏后给 A 点赞 结合定向分享能力

# 互动型托管数据与普通托管数据的对比如下:

普通托管数据 互动型托管数据 单用户数据大小 128块不大于1K的数据 只提供1个32位整型存储。

数据来源 开放数据域/主域/后台 开放数据域/后台

数据流向 开放数据域 开放数据域/主域

写入方式 覆盖写 递增(在开放数据域),覆盖写(后台)

写入时机 任意时机 用户点击弹框确认

写入对象 只能写本人 写好友(在开放数据域),写本人(后台)

读取对象 任意(本人/好友) 只能读本人

可以看到关系链互动数据可以从小游戏主域直接读取。

提供以下前端接口读写关系链互动数据

提供以下后端接口读写关系链互动数据

# 数据安全性校验

由于互动型托管数据涉及用户好友的游戏业务数据,这里为游戏方提供一种安全的,灵活的校验方式。

微信提供一个后台 JS 运行环境,由开发者上传一段代码,平台方在接受小程序前端发起的写入请求之后执该逻辑,并根据返回结果判断是否要真正执行写入操作。

# 扩展后的关系链开放能力

9138a0623c498ce25d47dcfabad5d0ec.png

# 后台JS运行环境JSServer 安全可控的后台JS运行环境

提供读写用户关系链数据的能力 # 接入准备 上传代码要求开发者工具版本(1.02.1908012)及其以上。下载地址 # 代码编写规范要求 定义函数 main

export 函数 main

//test.js

exports.main = function (req) {

return req

} # 代码上传/下载 工具配置文件 project.config.json 新增配置项

// project.config.json

{

"jsserverRoot": "jsserver"

}

配置生效后,该目录不参与编译,所以建议该目录不在小游戏代码根目录里。

├── game.js

├── jsserver

│ └── checkInteractiveData.js

鼠标右键点击对应目录,可以看到新建JS的选择项,点击即可创建一个JS文件,这里一个JS文件即为一个小游戏前端请求JSServer的入口,文件名即入口标识,如果已经有开发者创建同名JS,会失败, 目前只支持上传checkInteractiveData.js。

工具可以下载该小游戏已经上传的JS代码,分为开发版和正式版。 正式版小程序发起请求会拉取正式版的JSServer代码执行

开发版,体验版小程序以及开发工具发起的请求会拉取开发版的JSServer代码执行

请注意开发版本和正式版本各自只有一份代码 # JSServer提供的开放接口 获取用户本人的openid

接口名:wx.getOpenId()

参数:无

返回:openid

let openid = wx.getOpenId()

读取用户托管数据存储

接口名:wx.getFriendUserStorage()

参数:Array.< String >

返回:Array.< KVData >

//示例:

let friendsStorage = wx.getFriendUserStorage(["friendGift"])

写用户托管数据存储

接口名:wx.setFriendUserStorage()

参数:openid,Array.< KVData >

返回:{"errcode":0}

//示例:

let ret = wx.setFriendUserStorage(openid, [{

key: "friendGift",

value: JSON.stringify(giftRecords)

}]

)

if (ret.errcode != 0){

console.error("set err")//console 所打印的日志会通过接口返回给前端

}else{

console.log("set success")

} # 备注 JSServer内所有接口均为同步。

JSServer单次处理请求超时时间为1s,超过后任务会被终止。 # 互动型托管数据结合JSServer实现好友互动能力 wx.modifyFriendInteractiveData接口在具体写入操作之前会默认执行开发者托管在JSServer上的一段代码,要求开发者使用开发者工具上传文件checkInteractiveData.js。 开发者在checkInteractiveData.js可以拿到参数

用户本人openid:wx.getOpenId()

目标好友openid:toUser

增加的数据:opNum

修改数据的index(1 ~ 50): key

要求返回字段bool型 "ret" 字段告诉微信请求是否合法

开发者可以在checkInteractiveData.js中读写普通托管数据来存储用户互动记录。 # 利用关系链互动和JSServer的能力实现赠送金币的能力示例

a5aba2e2eab025c0ee833b495a520d52.png # 示例代码:(点击下载)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小游戏关系链能不能获取到服务器,关系链互动数据 的相关文章

  • 服务器磁盘性能多少分正常,服务器内存使用率多少为正常

    服务器内存使用率多少为正常 内容精选 换一换 当您发现云服务器的运行速度变慢或云服务器突然出现网络断开现象 则可能是云服务器的带宽和CPU使用率过高导致 如果您已经通过云监控服务创建过告警任务 当CPU或带宽利用率高时 系统会自动发送告警给
  • 微弱直流电压/电流信号的采样电路 --滤波跟随放大

    要求将待测的电压 1mV 1000mV 电流 1mA 100mA 采样出来传给单片机 我的思路是 电压采样先用放大电路放大 再进行滤波 把50Hz的交流电干扰滤除 然后再进行模数转换传给单片机 电流的话用一个采样电阻 然后对其电压采样后推算
  • 信息学奥赛一本通【1034:计算三角形面积】

    题目描述 平面上有一个三角形 它的三个顶点坐标分别为 x1 y1 x2 y2 x3 y3 x1 y1 x2 y2 x3 y3 那么请问这个三角形的面积是多少 精确到小数点后两位 输入 输入仅一行 包括66个单精度浮点数 分别对应x1 y1
  • 关于git的一些命令,实验记录

    1 下载moduleA项目代码 命令 git clone https github com wangyanan52121 moduleA git 因网络问题 可能会下载失败 多试几次 2 查看当前项目 查看tag命令 字符串排序 git C
  • 语言深入理解指针(非常详细)(三)

    目录 数组名的理解 使用指针访问数组 一维数组传参的本质 二级指针 指针数组 指针数组模拟二维数组 数组名的理解 在上 个章节我们在使用指针访问数组的内容时 有这样的代码 int arr 10 1 2 3 4 5 6 7 8 9 10 in
  • mysql如何一秒插入10万条数据

    当我们需要批量插入或者更新记录时 可以采用Java的批量更新机制 该机制允许多条语句甚至一次性提交给数据库处理 通常情况下比一句一提交处理更有效率 jdbc处理批量提交有三个方法 需要注意的是 这三种方法都要和PreparedStateme
  • Rx与Async Task的简单对比

    有关Reactive Extensions的介绍可见https rx codeplex com 总的来说 你可以当它是又一个异步编程的框架 它以观察者模式实现了对数据流的的 订阅 一个列表 一个事件 一个耗时操作的方法 等等 都可以Obse
  • C++ 多线程std::async

    std async 对于线程的创建 我们可以直接用thread 但是这会有很多的不便 比如获取子进程的返回值 解决方案是定义一个变量 然后将变量的指针传入到子进程中 然后对其进行赋值 但终归是不便 除此之外我们可以用std async函数来
  • 如何正确理解开漏输出和推挽输出

    作者 知乎用户 链接 https www zhihu com question 28512432 answer 41217074 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 我觉得下面这个 网上资料 还是
  • java项目如何实现数据恢复_Java web 项目中对数据库备份和恢复

    说白了 还是去调用cmd实现数据库的备份和还原功能 备份 mysqldump hserverUrl uusername ppassword dbname gt savePath 还原 mysql hserverUrl uusername p
  • 一文读懂SpringCloud全家桶

    一 云原生应用 SpringCloud是对Springboot使用的分布式解决方案 适合分布式 中大型的项目架构开发 现在也逐渐成为Java服务端的主流框架 使用Spring Cloud开发的应用程序非常适合在Docker和PaaS 比如P
  • C# 提交报错:Validation of viewstate MAC failed 解决办法

    出现以下报错 验证视图状态 MAC 失败 如果此应用程序由网络场或群集承载 请确保
  • 【STM32】SPI初步使用 读写FLASH W25Q64

    硬件连接 1 SS Slave Select 从设备选择信号线 常称为片选信号线 每个从设备都有独立的这一条 NSS 信号线 当主机要选择从设备时 把该从设备的 NSS 信号线设置为低电平 该从设备即被选中 即片选有效 接着主机开始与被选中
  • MySQL 8.0 多实例的配置应用

    文章目录 同版本多实例 配置 部署 启动 连接 不同版本多实例 配置 初始化 initialize insecure 含义 启动 同版本多实例 配置 mkdir p data 330 7 9 data chown R mysql mysql
  • 同城双活与异地多活架构分析

    本文首发于 vivo互联网技术 微信公众号 链接 https mp weixin qq com s OjfFcjnGWV5kutxXndtpMg 作者 vivo官网商城开发团队 采用高可用系统架构支持重要系统 为关键业务提供7x24的不间断
  • Win32 UDP Socket通信学习

    学习内容 参见 Windows网络编程 第7章 Winsock基础 与TCP流式协议不同 UDP为数据报协议 服务端接受数据 客户端发送数据 UDP服务端流程 Socket或WSASocket建立套接字 用SOCK DGRAM标志 bind
  • bootstrap--栅格系统详解(源码分析)

    目录 1 bootstrap是什么 2 栅格模型设计的精妙之处 3 预备知识 4 栅格系统的框架 4 1bootstrap容器 4 1 1固定容器与流体容器公共样式 4 1 2固定容器样式 4 2 bootstrap行与列 4 2 1行 4
  • js中的navigator对象 用js判断浏览器类型

    navigator对象 window navigator返回一个navigator对象的引用 可以用它来查询一些关于运行当前脚本的应用程序的相关信息 在浏览器打印一下navigator对象 console log navigator MDN
  • 基于Nonconvex规划的配电网重构研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 本文基于Nonconvex规划的配电网重构

随机推荐

  • FastAPI从入门到实战(8)——一文弄懂Cookie、Session、Token与JWT

    看到标题应该也能看出来本文讲的就是前端鉴权相关的内容了 鉴权也就是身份认证 指验证用户是否有系统的访问权限 只要是web开发 这部分内容就是不可能不学的 很多面试也必问 所以本文就针对此主题详细记录一下其常见的几种方式 HTTP状态 HTT
  • 面试知识点梳理及相关面试题(五)-- 多线程

    1 进程 线程和协程 进程 一个运行的程序就是一个进程 进程是资源分配的最小单位 线程 程序中运行的一个个子任务就是一个线程 线程是操作系统调度执行的最小单位 协程 协程是一种用户态的轻量级线程 协程的调度完全由用户控制 2 创建线程的四种
  • ue4_timeline时间轴

    1 给一个cube添加蓝图 需要修改的是z轴方向移动位置 将z轴传入时间轴 时间轴蓝图如下 z轴时间轴修改为 第一个节点 time 0 value 300 物体的z轴初始位置 第二个节点 time 1 value 600 z轴移动300个单
  • 【python3】3.函数、类、模块

    2022 11 15 本学习内容总结于莫烦python 3 函数 类 模块 https mofanpy com tutorials python basic interactive python function 1 Function 函数
  • IB计算机科学选课,IB体系应如何正确选课?

    原标题 IB体系应如何正确选课 选择国际学校最重要的环节就是选课 这决定了你之后的学习方向和计划 甚至影响到成绩的好坏 目前很多国际学校都是IB体系 IB课程除了重视基础知识教学 还有学生的综合素质培养 教学大纲也是与时俱进5年一换 IB体
  • Vue3 + Vite3 + Element-Plus 管理系统

    Vue3 Vite3 Element Plus 管理系统 介绍 vue diverse admin 基于 Vue3 TypeScript Vite3 Element Plus 开源的一套后台管理模板 项目均使用JS开发 但已经配置TS 可以
  • 【VHDL】随机存储器RAM、只读存储器ROM

    VHDL 随机存储器设置 RAM程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY RAM 8 IS PORT CS RD WR IN STD LOGIC CLK IN STD LOGIC
  • Android SDK的安装教程

    Android SDK的安装教程 Android4 1虽说已经发布了好些天 但由于的我手机比较坑 系统依旧保持在2 3 4 0的都是可望不可即的了 就别说4 1 由于资金的问题 没法换手机 只能另想方法 通过在笔记本上装android4 1
  • java实现,如何在当前时间往后推三十天

    Calendar cal Calendar getInstance cal add Calendar Date 30 Date date cal getTime
  • topaz全家桶中文_apache 开源项目全家桶 2020年12月中文介绍

    apache项目全家桶 很多apache开源项目特别好 但是没什么能汇总的文档 我来整一个 不定期更新 big data 50 Project Apache Accumulo star 838 github https github com
  • shell脚本基础4——function函数、expect

    文章目录 一 function函数 1 1 函数的定义使用 1 2 函数参数 1 2 1 脚本内传参 1 2 2 脚本外传参 1 3 引用局部变量 1 3 1 区分局部变量 1 3 2 全局变量在函数外 1 3 3 全局变量在函数体 1 3
  • windows检测文件夹是否更新.bat脚本 windows循环检查文件夹

    最近在写windows脚本 记录一下一个很有用的信息 参考 https zhidao baidu com question 2208474390884363868 html 转载于 https www cnblogs com ChenCha
  • Python3 使用 matplotlib 画折线图

    ChartUtil py import matplotlib pyplot as plt from pylab import mpl def plotLine xData yData xLabel chartTitle mpl rcPara
  • matlab:基本操作与矩阵输入

    学习素材 MATLAB教程 台大郭彦甫 14课 原视频补档 MATLAB教程 台大郭彦甫 14课 原视频补档 哔哩哔哩 bilibili 部分素材使用视频截图 目录 一 基本运算 二 关键字 三 format 四 符号 1 2 colon
  • [ACTF 2020 新生赛] Exec

    Exec ping 127 0 0 1 ls ping 127 0 0 1 nl f
  • ABAP实现粘贴板的操作,复制粘贴_SAP刘梦_新浪博客

    ABAP可以实现复制粘贴的操作 自己玩儿 项目里暂时用不到 在ABAP中的 CLASS CL GUI FRONTEND SERVICES中提供了两个方法来控制与剪贴板内容的导入导出 分别是 CLIPBOARD EXPORT和CLIPBOAR
  • Git学习笔记【1】---本地操作

    声明 本教程参考自https www bilibili com video BV1Zz4y1C7vg p 17 一 Git的安装 官网下载即可 https git scm com 二 初始化本地仓库 1 创建一个文件夹 2 打开Git终端
  • Java常用System类

    java lang System类中提供了大量的静态方法 可以获取与系统相关的信息或系统级操作 在System类的API文档中 常用的方法有 public static long currentTimeMillis 返回以毫秒为单位的当前时
  • 移动互联网终端的touch事件,touchstart, touchend, touchmove

    前言 如果我们允许用户在页面上用类似桌面浏览器鼠标手势的方式来控制WEB APP 这个页面上肯定是有很多可点击区域的 如果用户触摸到了那些可点击区域怎么办呢 诸如智能手机和平板电脑一类的移动设备通常会有一个电容式触摸屏 capacitive
  • 微信小游戏关系链能不能获取到服务器,关系链互动数据

    关系链互动数据 在开放 关系链数据能力 的基础上 小游戏新增 互动型托管数据 提供关系链互动能力 用于实现小游戏内微信好友互动 点赞 送礼物等 的功能 关系链互动数据能力支持 好友间互赠 50 种游戏内道具 提供成功互动后的主域回调 满足互