diff --git a/handler/urlparser/url.go b/handler/urlparser/url.go index 8b590f1..f9461f7 100644 --- a/handler/urlparser/url.go +++ b/handler/urlparser/url.go @@ -128,6 +128,21 @@ func parseQQDocURL(jsonStr string) (string, error) { if !ok { return "", fmt.Errorf("找不到 jumpUrl 字段") } + } else if jsonData["app"] == "com.tencent.troopsharecard" { // 定位到 meta -> contact -> jumpUrl + meta, ok := jsonData["meta"].(map[string]interface{}) + if !ok { + return "", fmt.Errorf("找不到 meta 字段") + } + contact, ok := meta["contact"].(map[string]interface{}) + if !ok { + return "", fmt.Errorf("找不到 contact 字段") + } + url, ok = contact["jumpUrl"].(string) + if !ok { + return "", fmt.Errorf("找不到 jumpUrl 字段") + } + } else { + return "", fmt.Errorf("未知的 app 类型") } return url, nil