接口文档

冰柠乐接口文档


快手小游戏接口上报文档

<p>[TOC]</p> <h1>注意</h1> <p>&lt;div style=&quot;background: #fda7b4;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;1、快手小游戏接口上报,无法使用js SDK的可使用 2、如果能使用js SDK接入,建议接入[抖音小游戏SDK文档](<a href="https://cps.moyangmoyang.com/b6791bnlwiki/douyin">https://cps.moyangmoyang.com/b6791bnlwiki/douyin</a> &quot;抖音小游戏SDK文档&quot;) &lt;/div&gt;</p> <h1>介绍</h1> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;抖音小游戏CPS上报接口。 接入前需要运营先在CPS后台添加对应的游戏appid,提供生成加密密钥 secret_key,研发才能进行后续接入。</p> <p>接口主域名为 <code>https://cps.moyangmoyang.com</code></p> <p>全部采用POST请求,请求必须有加密签名,支持JSON和表单格式 &lt;/div&gt;</p> <h1>签名加密</h1> <pre><code>1)参数名进行升序排序后 2)md5(源字符串+&amp;#039;&amp;amp;secret_key=&amp;#039;+secret_key)生成签名sign 3) 生成的签名小写,无需转换 提供加密代码实例: PHP: ksort($data); $tmp=array(); foreach ($data as $k =&amp;gt; $v) { $tmp[] = $k . &amp;#039;=&amp;#039; . $v; } $str = implode(&amp;#039;&amp;amp;&amp;#039;, $tmp) . &amp;#039;&amp;amp;secret_key=&amp;#039;.$secret_key; $realSign = md5($str); return $realSign; js: function check_sign(data, secret_key) { let keys = Object.keys(data); keys.sort(); let tmp = []; for (let i = 0; i &amp;lt; keys.length; i++) { tmp.push(keys[i] + &amp;#039;=&amp;#039; + data[keys[i]]); } console.log(tmp.join(&amp;#039;&amp;amp;&amp;#039;)); let str = tmp.join(&amp;#039;&amp;amp;&amp;#039;) + &amp;#039;&amp;amp;secret_key=&amp;#039; + secret_key; let sign = md5(str); console.log(sign); }</code></pre> <h1>1.上报注册用户信息(必须,首先上报)</h1> <p>&lt;div style=&quot;background: #fda7b4;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;⚡ <strong>注意</strong> 必须上报,必须首先上报这个 &lt;/div&gt;</p> <h2>1.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍上报第一次进入游戏的新用户,account_id和其他信息</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/userinfo</code> &lt;/div&gt; &lt;div style=&quot;background: #FFE4B5;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;⚠️ <strong>注意</strong> 后续接口依赖于已存在的用户数据,所以此接口必须先完成上报才能接入后续上报 &lt;/div&gt;</p> <h2>1.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |account_id |是  |string |玩家openid:小游戏服务器从快手服务器获取   | |game_appid |是  |string | 游戏appid   | |channel_id     |是  |string | ksgame   | |sub_channel_id     |是  |string | 通过 [ks.getLaunchOptionsSync](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;ks.getLaunchOptionsSync&quot;)里面的 query 字段获取到链接上的<strong>creative_id</strong>,&lt;span style=&quot;color:red&quot;&gt;空的话默认:test_sub_channel_id&lt;/span&gt;&gt;&gt;&gt;&gt;&gt;&gt;字段详情看备注    | |callback     |是  |string | 通过 [ks.getLaunchOptionsSync](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;ks.getLaunchOptionsSync&quot;) 里面的 query 字段获取到链接上的<strong>callback</strong>,&lt;span style=&quot;color:red&quot;&gt;空的话默认:传空&lt;/span&gt;&gt;&gt;&gt;&gt;&gt;&gt; 字段详情看备注    | |dyadid     |是  |string | 通过 [ks.getLaunchOptionsSync](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;ks.getLaunchOptionsSync&quot;) 里面的 query 字段获取到链接上的<strong>dyadid</strong>,&lt;span style=&quot;color:red&quot;&gt;空的话默认:传空&lt;/span&gt;&gt;&gt;&gt;&gt;&gt;&gt; 字段详情看备注    | |shareid     |是  |string | 通过哪个用户的分享进来,分享用户的account_id,没有传0    | |sign     |是  |string | 生成签名    |</p> <p><strong>字段备注</strong> 获取启动参数示例: C#:[获取启动参数](<a href="https://docs.qingque.cn/d/home/eZQBKPPXInAfG7EKhBVmCzYhC?identityId=1oE3XPpOoOC#section=h.djq3q8x0qdfh">https://docs.qingque.cn/d/home/eZQBKPPXInAfG7EKhBVmCzYhC?identityId=1oE3XPpOoOC#section=h.djq3q8x0qdfh</a> &quot;获取启动参数&quot;) Js:[获取启动参数](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;获取启动参数&quot;)</p> <p>sub_channel_id字段详情:开发人员可以通过[ks.getLaunchOptionsSync](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;ks.getLaunchOptionsSync&quot;) 里面的 query 字段获取到链接上的&lt;span style=&quot;color:red&quot;&gt;<strong>creative_id</strong>&lt;/span&gt;参数。<strong>只有通过广告进来的用户,query中才会有creative_id参数</strong>,空的话默认test_sub_channel_id</p> <p>callback字段详情:开发人员可以通过 [ks.getLaunchOptionsSync](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;ks.getLaunchOptionsSync&quot;)里面的 query 字段获取到链接上的&lt;span style=&quot;color:red&quot;&gt;<strong>callback</strong>&lt;/span&gt;参数。<strong>只有通过广告进来的用户,query中才会有callback参数</strong>,空的话默认就传空</p> <p>dyadid字段详情:开发人员可以通过 [ks.getLaunchOptionsSync](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;ks.getLaunchOptionsSync&quot;) 里面的 query 字段获取到链接上的&lt;span style=&quot;color:red&quot;&gt;<strong>dyadid</strong>&lt;/span&gt;参数。<strong>只有通过广告进来的用户,query中才会有dyadid参数</strong>,空的话默认就传空</p> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;query中creative_id和callback参数示例:👇👇👇👇👇 &lt;/div&gt;</p> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=e8807a2ffdbee70c5f94600136d2641a&amp;amp;file=file.png" alt="" /></p> <h2>1.3示例代码</h2> <p>示例密钥:T1yO6JUDnVZDUt2k7649Vb</p> <pre><code class="language-javascript">{ &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;channel_id&amp;quot;: &amp;quot;ksgame&amp;quot;, &amp;quot;sub_channel_id&amp;quot;: &amp;quot;test_ sub_channel_id&amp;quot;, &amp;quot;callback&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;shareid&amp;quot;: &amp;quot;0&amp;quot;, &amp;quot;dyadid&amp;quot;: &amp;quot;&amp;quot;, &amp;quot;sign&amp;quot;: &amp;quot;bd1a444d919bfcf92a50b0427dafaaca&amp;quot; }</code></pre> <h2>1.4接口返回</h2> <pre><code class="language-javascript">Callback: {&amp;quot;code&amp;quot;:1,&amp;quot;msg&amp;quot;:&amp;quot;用户已经上报&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1721272806&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre> <h1>2.登陆活跃信息上报(必须)</h1> <h2>2.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍用户每次打开登陆游戏时候上报</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/login</code> &lt;/div&gt; &lt;div style=&quot;background: #FFE4B5;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;⚠️ <strong>注意</strong> 如果是当天注册的新用户,只需上报注册信息即可,无需再调用此接口 &lt;/div&gt;</p> <h2>2.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |game_appid |是  |string |游戏appid   | |channel_id |是  |string | ksgame   | |sub_channel_id     |是  |string | 通过 [ks.getLaunchOptionsSync](<a href="https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html">https://ks-game-docs.kuaishou.com/minigame/api/base/lifecycle/ks.getLaunchOptionsSync.html</a> &quot;ks.getLaunchOptionsSync&quot;)里面的 query 字段获取到链接上的<strong>creative_id</strong>,&lt;span style=&quot;color:red&quot;&gt;空的话默认:test_sub_channel_id&lt;/span&gt;    | |account_id     |是  |string | 玩家openid:小游戏服务器从快手服务器获取    | |sign     |是  |string | 生成签名    |</p> <h2>2.3示例代码</h2> <pre><code class="language-javascript">{ &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;channel_id&amp;quot;: &amp;quot;ksgame&amp;quot;, &amp;quot;sub_channel_id&amp;quot;: &amp;quot;12313131001&amp;quot;, &amp;quot;sign&amp;quot;: &amp;quot;c57854337929ae7cb1c97b432fc319d74ad817ca&amp;quot; }</code></pre> <h2>2.4接口返回</h2> <pre><code class="language-javascript">Callback: {&amp;quot;code&amp;quot;:0,&amp;quot;msg&amp;quot;:&amp;quot;登录已上报&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1724053440&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre> <h1>3.创建角色信息上报</h1> <h2>3.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍上报创角事件</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/create_role</code> &lt;/div&gt;</p> <h2>3.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |role_id |是  |string |角色ID (若无角色唯一id,则传account_id)   | |nickname |是  |int | 角色名称    | |server_id     |是  |int | 区服ID,没有填个默认数字    | |server_name     |是  |string | 区服名称,没有填个默认名称    | |game_appid     |是  |string | 游戏appid    | |account_id     |是  |string | 玩家openid:小游戏服务器从快手服务器获取    | |sign     |是  |string | 生成签名    |</p> <h2>3.3示例代码</h2> <pre><code class="language-javascript">{ &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;role_id&amp;quot;: &amp;quot;100001&amp;quot;, &amp;quot;nickname&amp;quot;: &amp;quot;测试角色&amp;quot;, &amp;quot;server_id&amp;quot;: &amp;quot;1&amp;quot;, &amp;quot;server_name&amp;quot;: &amp;quot;测试&amp;quot;, &amp;quot;sign&amp;quot;: &amp;quot;bd28fd121a154147bd1405ac8377c4410df4f817&amp;quot; }</code></pre> <h2>3.4接口返回</h2> <pre><code class="language-javascript">Callback: {&amp;quot;code&amp;quot;:1,&amp;quot;msg&amp;quot;:&amp;quot;成功&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1721272731&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre> <h1>4.激励视频广告点击(有激励视频必须上报)</h1> <h2>4.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍激励视频广告点击上报</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/video_click</code> &lt;/div&gt; &lt;div style=&quot;background: #FFE4B5;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;⚠️ <strong>注意</strong> 1.只上报激励视频 2.广告show出来的时候上报 &lt;/div&gt;</p> <h2>4.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |game_appid     |是  |string | 游戏appid    | |account_id     |是  |string | 玩家openid:小游戏服务器从快手服务器获取    | |sign     |是  |string | 生成签名    |</p> <h2>4.3示例代码</h2> <pre><code class="language-javascript">{ &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;sign&amp;quot;: &amp;quot;fc75644f87ab7ffa9fc85310f4b9b6c6fb4d84c9&amp;quot; }</code></pre> <h2>4.4接口返回</h2> <pre><code class="language-javascript">Callback: {&amp;quot;code&amp;quot;:1,&amp;quot;msg&amp;quot;:&amp;quot;成功&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1721272731&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre> <h1>5.激励视频广告看完(有激励视频必须上报)</h1> <h2>5.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍激励视频广告看完上报</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/watch</code> &lt;/div&gt; &lt;div style=&quot;background: #FFE4B5;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;⚠️ <strong>注意</strong> 1.只上报激励视频 2.广告close的时候上报 &lt;/div&gt;</p> <h2>5.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |game_appid     |是  |string | 游戏appid    | |account_id     |是  |string | 玩家openid:小游戏服务器从快手服务器获取    | |sign     |是  |string | 生成签名    |</p> <h2>5.3示例代码</h2> <pre><code class="language-javascript">{ &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;sign&amp;quot;: &amp;quot;fc75644f87ab7ffa9fc85310f4b9b6c6fb4d84c9&amp;quot; }</code></pre> <h2>5.4接口返回</h2> <pre><code class="language-javascript">Callback: {&amp;quot;code&amp;quot;:1,&amp;quot;msg&amp;quot;:&amp;quot;成功&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1721272731&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre> <h1>6.在线时长上报</h1> <h2>6.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍统计在线时长(用户打开到退出的停留时长)</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/timing</code> &lt;/div&gt; &lt;div style=&quot;background: #FFE4B5;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;⚠️ <strong>注意</strong> 1.大于60秒才上报 2.可以分片上传,可以退出后一次性传,同用户后台会自动累加 &lt;/div&gt;</p> <h2>6.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |timing     |是  |int | 在线时长(秒),大于等于60秒才上报,可以分片上传,可以退出后一次性传,同用户后台会自动累加    | |game_appid     |是  |string | 游戏appid    | |account_id     |是  |string | 玩家openid:小游戏服务器从快手服务器获取    | |sign     |是  |string | 生成签名    |</p> <h2>6.3示例代码</h2> <pre><code class="language-javascript">{ &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;timing&amp;quot;: &amp;quot;100&amp;quot;, &amp;quot;sign&amp;quot;: &amp;quot;c95a975b80fb4fa875ecd0b062a50367b124e8d8&amp;quot; }</code></pre> <h2>6.4接口返回</h2> <pre><code class="language-javascript">Callback: {&amp;quot;code&amp;quot;:1,&amp;quot;msg&amp;quot;:&amp;quot;成功&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1721272731&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre> <h1>7.关卡等级上报</h1> <h2>7.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍关卡等级或者分数记录</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/game_level</code> &lt;/div&gt;</p> <h2>7.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |level     |是  |int | 等级或者积分    | |game_appid     |是  |string | 游戏appid    | |account_id     |是  |string | 玩家openid:小游戏服务器从快手服务器获取    | |sign     |是  |string | 生成签名    |</p> <h2>7.3示例代码</h2> <pre><code class="language-javascript">{     &amp;quot;game_appid&amp;quot;: &amp;quot;tt3f354988a007dbb002&amp;quot;,     &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;,     &amp;quot;level&amp;quot;: 1,     &amp;quot;sign&amp;quot;: &amp;quot;f207be6284584633b1023c8b2dc1156f&amp;quot; }</code></pre> <h2>7.4接口返回</h2> <pre><code class="language-javascript">Callback: {&amp;quot;code&amp;quot;:1,&amp;quot;msg&amp;quot;:&amp;quot;成功&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1721272731&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre> <h1>8.广告点上报</h1> <h2>8.1接口说明</h2> <p>&lt;div style=&quot;background: #9efca6;padding: 12px; border-radius: 8px; color: #000;&quot;&gt;✍广告点上报,看广告时调用</p> <p><code>url:</code> <code>https://cps.moyangmoyang.com/api/ksgame/adnamereward</code> &lt;/div&gt;</p> <h2>8.2参数说明</h2> <p>|参数名|必选|类型|说明| |:----    |:---|:----- |-----   | |game_appid     |是  |string | 游戏appid    | |account_id     |是  |string | 玩家openid,小游戏服务器从快手服务器获取    | |ad_name |是  |string |广告位名称   | |ad_is_reward |是  |int |是否获得广告奖励 0否,1是(只要看完广告就传1,没看完传0)   | |sign     |是  |string | 生成签名    |</p> <h2>8.3示例代码</h2> <pre><code class="language-javascript">//广告未看完 { &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;ad_name&amp;quot;: &amp;quot;广告未看完(这是广告点示例,要传当前广告点名称,名称不要带广告未看完)&amp;quot;, &amp;quot;ad_is_reward&amp;quot;: 0, //0未获得奖励,1获得奖励,必传((点击了广告未看完传0)) &amp;quot;sign&amp;quot;: &amp;quot;f207be6284584633b1023c8b2dc1156f&amp;quot; } //广告看完 { &amp;quot;game_appid&amp;quot;: &amp;quot;ks123456789&amp;quot;, &amp;quot;account_id&amp;quot;: &amp;quot;34D015FCDA78A87A07FA5CF3B5276523&amp;quot;, &amp;quot;ad_name&amp;quot;: &amp;quot;广告看完(这是广告点示例,要传当前广告点名称,名称不要带广告看完)&amp;quot;, &amp;quot;ad_is_reward&amp;quot;: 1, //0未获得奖励,1获得奖励,必传((只要看完广告就传1)) &amp;quot;sign&amp;quot;: &amp;quot;f207be6284584633b1023c8b2dc1156f&amp;quot; }</code></pre> <h2>8.4接口返回</h2> <pre><code class="language-javascript">上报广告名称:{&amp;quot;code&amp;quot;:1,&amp;quot;msg&amp;quot;:&amp;quot;成功&amp;quot;,&amp;quot;time&amp;quot;:&amp;quot;1717141847&amp;quot;,&amp;quot;data&amp;quot;:null}</code></pre>

页面列表

ITEM_HTML