乐玩


事件埋点

<p>[TOC]</p> <h3>1、【事件埋点】接口功能说明</h3> <pre><code>调用该接口发送事件埋点,如华为的快应用</code></pre> <h5>请求URL</h5> <ul> <li><a href="https://exc.llewan.com/v1/CPServer/actionReport">https://exc.llewan.com/v1/CPServer/actionReport</a></li> </ul> <h5>请求方式</h5> <ul> <li>POST </li> </ul> <h5>数据格式</h5> <ul> <li>请求:Content-Type: application/json</li> <li>响应:Content-Type: application/json</li> </ul> <h5>请求参数</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">game</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>游戏标识</td> </tr> <tr> <td style="text-align: left;">platform</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>平台标识, 华为快应用:huawei</td> </tr> <tr> <td style="text-align: left;">mark  </td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>&lt;span style=&quot;color:red&quot;&gt;请求唯一标识,不超过64位&lt;/span&gt;,cp方需要保证每次调用唯一,相同的mark值会被忽略</td> </tr> <tr> <td style="text-align: left;">data</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>上报事件,json字符串,&lt;span style=&quot;color:red&quot;&gt;最多100个乐玩UID&lt;/span&gt;</td> </tr> <tr> <td style="text-align: left;">timeStamp</td> <td style="text-align: left;">是</td> <td style="text-align: left;">integer</td> <td>时间戳,单位为:s</td> </tr> <tr> <td style="text-align: left;">sign</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>签名,签名方式见下说明</td> </tr> </tbody> </table> <h5>上报事件(data)具体参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">event_key</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>事件KEY</td> </tr> <tr> <td style="text-align: left;">event_time</td> <td style="text-align: left;">是</td> <td style="text-align: left;">Number</td> <td>事件上报时间戳,单位:毫秒。</td> </tr> <tr> <td style="text-align: left;">properties</td> <td style="text-align: left;">否</td> <td style="text-align: left;">Object</td> <td>&lt;span style=&quot;color:red&quot;&gt;没有不传&lt;/span&gt;,事件属性列表,包括公共属性和事件属性。</td> </tr> </tbody> </table> <h5>请求示例</h5> <pre><code>// 单个角色事件 {     &amp;quot;game&amp;quot;: &amp;quot;jihewangguo-huawei&amp;quot;,     &amp;quot;platform&amp;quot;:&amp;quot;huawei&amp;quot;,     &amp;quot;mark&amp;quot;:&amp;quot;26520207_10_22814080_17521323511&amp;quot;,     &amp;quot;data&amp;quot;: &amp;quot;[{\&amp;quot;uid\&amp;quot;:\&amp;quot;26520207_10\&amp;quot;,\&amp;quot;roleId\&amp;quot;:\&amp;quot;22814080\&amp;quot;,\&amp;quot;eventKey\&amp;quot;:\&amp;quot;#user_login\&amp;quot;,\&amp;quot;eventTime\&amp;quot;:1752132350}]&amp;quot;,     &amp;quot;timeStamp&amp;quot;:&amp;quot;1752132350&amp;quot;,     &amp;quot;sign&amp;quot;:&amp;quot;35fc76285a0b2b9c59e92e9bf1359908&amp;quot; } //多个角色事件 {     &amp;quot;game&amp;quot;: &amp;quot;jihewangguo-huawei&amp;quot;,     &amp;quot;platform&amp;quot;:&amp;quot;huawei&amp;quot;,     &amp;quot;mark&amp;quot;:&amp;quot;26520207_10_22814080_1752198463&amp;quot;,     &amp;quot;data&amp;quot;: &amp;quot;[{\&amp;quot;uid\&amp;quot;:\&amp;quot;26520207_10\&amp;quot;,\&amp;quot;roleId\&amp;quot;:\&amp;quot;22814080\&amp;quot;,\&amp;quot;eventKey\&amp;quot;:\&amp;quot;#sign_in\&amp;quot;,\&amp;quot;eventTime\&amp;quot;:1752198462},{\&amp;quot;uid\&amp;quot;:\&amp;quot;46981640_10\&amp;quot;,\&amp;quot;roleId\&amp;quot;:\&amp;quot;29441628\&amp;quot;,\&amp;quot;eventKey\&amp;quot;:\&amp;quot;#sign_in\&amp;quot;,\&amp;quot;eventTime\&amp;quot;:1752198462}]&amp;quot;,     &amp;quot;timeStamp&amp;quot;:&amp;quot;1752198462&amp;quot;,     &amp;quot;sign&amp;quot;:&amp;quot;b37c697724ad08b3053746086e3e3aca&amp;quot; }</code></pre> <h5>返回示例</h5> <pre><code>// 成功 { &amp;quot;code&amp;quot;: 1, &amp;quot;msg&amp;quot;: &amp;quot;success&amp;quot;, &amp;quot;d&amp;quot;: [] } // 异常 {&amp;quot;code&amp;quot;: -1, &amp;quot;msg&amp;quot;: &amp;quot;param error&amp;quot;} // 参数错误,缺少请求参数 </code></pre> <h5>签名方式,同封禁请求</h5> <ul> <li><strong>参与签名字段说明</strong> 以上请求参数除sign外都需要参与签名</li> <li><strong>签名规则</strong> 1、签名串规则:所有参与签名的参数,按参数名(key)字典序升序排序,以key=value格式,并用【&amp;】连接组成签名串,最后连接服务端签名秘钥 2、对签名串进行MD5加密得到签名(32位小写字符串),PHP示例如下:</li> </ul> <pre><code>&amp;lt;?php function getSign($params, $secret) { //剔除sign字段 if (isset($params[&amp;#039;sign&amp;#039;])) unset($params[&amp;#039;sign&amp;#039;]); //对数组按key升序排序 ksort($params); //拼接签名串 $formatStr = &amp;#039;&amp;#039;; foreach ($params as $key =&amp;gt; $v) { $formatStr .= $key . &amp;#039;=&amp;#039; . $v . &amp;#039;&amp;amp;&amp;#039;; } return md5(substr($formatStr, 0, -1) . $secret); } $secret = &amp;#039;abc&amp;#039;; //服务端签名秘钥 $params = [ &amp;#039;game&amp;#039; =&amp;gt; &amp;#039;jihewangguo-huawei&amp;#039;, &amp;#039;platform&amp;#039; =&amp;gt; &amp;#039;huawei&amp;#039;, ... ]; //请求参数 $sign = getSign($params, $secret); //签名 </code></pre>

页面列表

ITEM_HTML