# 先设置 OPEN_API_BASE_URL、OPEN_API_KEY、OPEN_API_SECRET；请使用当前环境的凭证。
set -eu
: "${OPEN_API_BASE_URL:?请设置 HTTPS API Origin}"
: "${OPEN_API_KEY:?请设置 API Key}"
: "${OPEN_API_SECRET:?请设置 Secret}"
export OPEN_API_PATH='/api/v1/open/watch-data/overview'
export OPEN_API_BODY='{"ticketCode":"demo-live","playbackMode":"ALL"}'
export OPEN_API_TIMESTAMP="$(date +%s)"
export OPEN_API_NONCE="$(python3 -c 'import secrets; print(secrets.token_hex(16))')"
SIGNATURE="$(python3 - <<'PY'
import hashlib, hmac, os
body = os.environ['OPEN_API_BODY'].encode('utf-8')
canonical = '\n'.join([os.environ['OPEN_API_KEY'], 'POST', os.environ['OPEN_API_PATH'], os.environ['OPEN_API_TIMESTAMP'], os.environ['OPEN_API_NONCE'], hashlib.sha256(body).hexdigest()])
print(hmac.new(os.environ['OPEN_API_SECRET'].encode('utf-8'), canonical.encode('utf-8'), hashlib.sha256).hexdigest())
PY
)"
# 不使用 -v 或调试日志；响应可能含观众资料或一次性登录票据。
curl --silent --show-error --max-time 15 \
  --request POST "${OPEN_API_BASE_URL%/}${OPEN_API_PATH}" \
  --header 'Content-Type: application/json' \
  --header "X-API-Key: ${OPEN_API_KEY}" \
  --header "X-Timestamp: ${OPEN_API_TIMESTAMP}" \
  --header "X-Nonce: ${OPEN_API_NONCE}" \
  --header "X-Signature: ${SIGNATURE}" \
  --data-binary "${OPEN_API_BODY}"
