hm-tracking-sdk 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -2
- package/dist/browser/index.es.js +18 -12
- package/dist/browser/index.umd.js +2 -2
- package/dist/sdk/HmTrackingSDK.js +8 -1
- package/dist/sdk/HmTrackingSDK.js.map +1 -1
- package/dist/sdk/api.d.ts +3 -1
- package/dist/sdk/api.js.map +1 -1
- package/dist/sdk/http.d.ts +1 -0
- package/dist/sdk/http.js +5 -0
- package/dist/sdk/http.js.map +1 -1
- package/dist/sdk/types.d.ts +4 -0
- package/dist/sdk/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/sdk/HmTgTrackingSDK.d.ts +0 -68
- package/dist/sdk/HmTgTrackingSDK.js +0 -336
- package/dist/sdk/HmTgTrackingSDK.js.map +0 -1
- package/dist/sdk/TgTrackingSDK.d.ts +0 -68
- package/dist/sdk/TgTrackingSDK.js +0 -336
- package/dist/sdk/TgTrackingSDK.js.map +0 -1
package/README.md
CHANGED
|
@@ -55,6 +55,8 @@
|
|
|
55
55
|
export interface SDKInitOptions {
|
|
56
56
|
/** 自定义接口地址(可选)。不传则使用默认正式环境 */
|
|
57
57
|
baseURL?: string;
|
|
58
|
+
appId?: string; // 可选:回调校验用
|
|
59
|
+
notifyUrl?: string; // 可选:SDK 初始化鉴权成功后的服务端回调地址
|
|
58
60
|
/** 本地存储 Key 前缀,避免冲突 */
|
|
59
61
|
storageKeyPrefix?: string;
|
|
60
62
|
/** 自定义用户信息(可选) */
|
|
@@ -65,6 +67,12 @@
|
|
|
65
67
|
- baseURL(可选)
|
|
66
68
|
- 说明:后端服务地址;不传则使用 SDK 内置默认地址。
|
|
67
69
|
- 类型:`string`
|
|
70
|
+
- appId (可选)
|
|
71
|
+
- 说明:服务器之间用来鉴权
|
|
72
|
+
- 类型:`string`
|
|
73
|
+
- notifyUrl (可选)
|
|
74
|
+
- 说明:SDK方服务器回调参数
|
|
75
|
+
- 类型:`string`
|
|
68
76
|
- storageKeyPrefix(可选)
|
|
69
77
|
- 说明:本地缓存命名空间前缀;用于隔离不同项目的存储键。
|
|
70
78
|
- 类型:`string`
|
|
@@ -72,8 +80,20 @@
|
|
|
72
80
|
- 说明:自定义用户数据,仅在非 Telegram 环境可用;若不传,SDK 会自动使用“匿名浏览器用户”(基于 Cookie 生成并持久化随机 userId),从而可以直接完成鉴权与后续请求。
|
|
73
81
|
- 类型:`TelegramUserInfo`
|
|
74
82
|
- 返回值:`Promise<void>`。
|
|
83
|
+
|
|
84
|
+
### 2.1 初始化成功通知调用说明(服务端回调)
|
|
85
|
+
|
|
86
|
+
- 触发时机:当 SDK 调用 `init()` 完成鉴权后,服务端会读取鉴权请求体中的 `notifyUrl`,并向该地址发起一次通知,上报获取到的用户信息。
|
|
87
|
+
- 通知参数:可能是 JSON 对象或一个加密后的字符串。
|
|
88
|
+
- JSON 示例:
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{"id":"7506466780","first_name":"hong","last_name":"tang","nickname":"hongtang","username":"tanghong1992","language_code":"zh","allows_write_to_pm":1,"auth_date":"2025-04-08T02:08:53.000Z","hash":"a9d2d7c1b066bebb73c170006dc474061d7601183b388b037936aa7cb6620acf","chat_instance":"-2254244616056093259","is_premium_user":0,"photo_url":"https://t.me/i/userpic/320/uLzA4KyVzKwd0vi6Uvupe6U2mdnVEQOIbUZbFTQff6B3UhjRpQObL9I8Nq81G0ln.svg"}
|
|
92
|
+
```
|
|
75
93
|
|
|
76
|
-
|
|
94
|
+
- 若为加密字符串:请与服务端约定解密方式及签名校验流程。
|
|
95
|
+
|
|
96
|
+
### 2.2 环境
|
|
77
97
|
|
|
78
98
|
- Telegram 环境
|
|
79
99
|
- SDK 自动读取当前Telegram用户的信息。
|
|
@@ -84,7 +104,7 @@
|
|
|
84
104
|
- 便于无登录状态下完成鉴权,拿到 token 后再进行广告或调试。
|
|
85
105
|
- 自定义用户:也可传入 `customUser` 替代匿名用户。
|
|
86
106
|
|
|
87
|
-
### 2.
|
|
107
|
+
### 2.3 环境判断
|
|
88
108
|
|
|
89
109
|
- 接口: isTelegramEnv()
|
|
90
110
|
|
|
@@ -352,3 +372,7 @@
|
|
|
352
372
|
- **msg**: 描述信息
|
|
353
373
|
- **timestamp/datetime**: 服务端时间
|
|
354
374
|
- **data**: 业务扩展字段(本例为空对象)
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
|
package/dist/browser/index.es.js
CHANGED
|
@@ -2855,10 +2855,11 @@ class HttpClient {
|
|
|
2855
2855
|
const v = this.options.getToken();
|
|
2856
2856
|
if (v) {
|
|
2857
2857
|
m.headers = m.headers || {};
|
|
2858
|
-
const
|
|
2859
|
-
m.headers.Authorization =
|
|
2858
|
+
const w = `Bearer ${v}`;
|
|
2859
|
+
m.headers.Authorization = w;
|
|
2860
2860
|
}
|
|
2861
|
-
|
|
2861
|
+
const g = this.options.getAppId ? this.options.getAppId() : null;
|
|
2862
|
+
return g && (m.headers = m.headers || {}, m.headers["hm-app-id"] = String(g)), m;
|
|
2862
2863
|
}), this.instance.interceptors.response.use(
|
|
2863
2864
|
(m) => m,
|
|
2864
2865
|
(m) => (m.response && m.response.status === 401 && this.options.onAuthError && this.options.onAuthError(), Promise.reject(m))
|
|
@@ -36026,7 +36027,8 @@ class HmTrackingSDK {
|
|
|
36026
36027
|
this.http = new HttpClient({
|
|
36027
36028
|
getToken: () => this.token,
|
|
36028
36029
|
onAuthError: () => this.clearAuth(),
|
|
36029
|
-
baseURL: m
|
|
36030
|
+
baseURL: m,
|
|
36031
|
+
getAppId: () => this.options && this.options.appId || null
|
|
36030
36032
|
}), this.api = new APIService(this.http), this.hmAdManager = new HmAdManager({ autoInjectScript: !0 }), this.adMonitor = new AdMonitor((v) => this.api.adMonitor(v)), this.tonWallet = new DefaultTonWalletProvider(this.bindWallet.bind(this));
|
|
36031
36033
|
}
|
|
36032
36034
|
async init() {
|
|
@@ -36050,15 +36052,19 @@ class HmTrackingSDK {
|
|
|
36050
36052
|
* 调用 /user/auth 并持久化 token
|
|
36051
36053
|
*/
|
|
36052
36054
|
async auth() {
|
|
36053
|
-
var f;
|
|
36055
|
+
var f, d;
|
|
36054
36056
|
try {
|
|
36055
|
-
const
|
|
36056
|
-
|
|
36057
|
-
|
|
36058
|
-
|
|
36059
|
-
|
|
36060
|
-
|
|
36061
|
-
|
|
36057
|
+
const m = {
|
|
36058
|
+
...this.user
|
|
36059
|
+
}, v = (f = this.options) == null ? void 0 : f.notifyUrl;
|
|
36060
|
+
v && (m.notifyUrl = v);
|
|
36061
|
+
const g = await this.api.auth(m);
|
|
36062
|
+
if (g.code !== 1) throw new Error(g.msg || "鉴权失败");
|
|
36063
|
+
const w = (d = g.data) == null ? void 0 : d.token;
|
|
36064
|
+
if (!w) throw new Error("鉴权未返回 token");
|
|
36065
|
+
this.token = w, this.storage.set("token", w);
|
|
36066
|
+
} catch (m) {
|
|
36067
|
+
throw m;
|
|
36062
36068
|
}
|
|
36063
36069
|
}
|
|
36064
36070
|
/**
|