fish2018/pansou · error

链接令牌无效

Error message

链接令牌无效: %s

What it means

Semantic guard on the decoded ting77 token payload: HTTP was 200 and JSON parsed, but code != 0 or token/ts fields are empty (a 429-coded body maps to errRateLimited before this). The server explicitly declined to issue a usable link token.

Solutions

  1. Treat as server-side refusal: retry later with backoff, not immediately
  2. Log the returned code to map known refusals
  3. Drop the entry if refusals persist
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at plugin/ting77/ting77.go:327 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of fish2018/pansou@beaa561337 (2026-09-07). Data as JSON: /api/errors/0c69927c7315481a. Report an issue: GitHub.

Appendix: source

Thrown at plugin/ting77/ting77.go:327

	body, err := io.ReadAll(io.LimitReader(resp.Body, 512<<10))
	if err != nil {
		return "", "", err
	}
	if resp.StatusCode != http.StatusOK {
		if resp.StatusCode == http.StatusTooManyRequests {
			return "", "", errRateLimited
		}
		return "", "", fmt.Errorf("令牌接口返回状态码 %d", resp.StatusCode)
	}
	var token tokenResponse
	if err := json.Unmarshal(body, &token); err != nil {
		return "", "", fmt.Errorf("解析链接令牌失败: %w", err)
	}
	if token.Code != 0 || token.Data.Token == "" || token.Data.TS == "" {
		if token.Code == http.StatusTooManyRequests {
			return "", "", errRateLimited
		}
		return "", "", fmt.Errorf("链接令牌无效: %s", token.Message)
	}
	return token.Data.Token, token.Data.TS, nil
}

func setRequestHeaders(req *http.Request, referer, accept string) {
	req.Header.Set("User-Agent", browserUserAgent)
	req.Header.Set("Accept", accept)
	req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8")
	req.Header.Set("Cache-Control", "no-cache")
	if referer != "" {
		req.Header.Set("Referer", referer)
	}
}

func normalizeSiteCloudType(value string) string {
	switch strings.ToLower(strings.TrimSpace(value)) {
	case "quark":
		return "quark"

View on GitHub (pinned to beaa561337)