fish2018/pansou · error

令牌接口返回状态码

Error message

令牌接口返回状态码 %d

What it means

Status error in ting77's fetchLinkToken (plugin/ting77/ting77.go:317): the link-token API returned a non-200 status other than 429 (429 is mapped to errRateLimited earlier), so the resource's token cannot be obtained.

Solutions

  1. Honor errRateLimited separately with backoff
  2. For 403/5xx, retry with jitter or drop the entry
  3. Log resourceID to find systematically failing entries
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at plugin/ting77/ting77.go:317 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/ea9bbdd3f5d26854. Report an issue: GitHub.

Appendix: source

Thrown at plugin/ting77/ting77.go:317

	req, err := http.NewRequestWithContext(ctx, http.MethodGet, p.baseURL+"/api/link/token?"+query.Encode(), nil)
	if err != nil {
		return "", "", err
	}
	setRequestHeaders(req, p.baseURL+"/resource/"+resourceID, "application/json")
	resp, err := client.Do(req)
	if err != nil {
		return "", "", err
	}
	defer resp.Body.Close()
	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")

View on GitHub (pinned to beaa561337)