You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中调用USPS API遇401授权错误(无效令牌)求助

解决USPS Tracking V3 API的R语言授权问题

USPS Tracking V3 API采用OAuth2客户端凭证授权,不是你之前用的基础HTTP认证(authenticate()函数),这是导致401错误的核心原因。以下是完整的R语言实现步骤:

1. 获取Access Token

首先需要用你的USERID(作为client_id)和密码(作为client_secret)请求临时访问令牌:

library(httr)
library(jsonlite)

# 替换为你的USERID和密码
client_id <- "YOUR_USPS_USERID"
client_secret <- "YOUR_USPS_PASSWORD"

# 请求Token
token_response <- POST(
  url = "https://apis-tem.usps.com/oauth2/v3/token",
  body = list(
    grant_type = "client_credentials",
    client_id = client_id,
    client_secret = client_secret
  ),
  encode = "form"
)

# 解析Token
token_data <- fromJSON(content(token_response, "text"))
access_token <- token_data$access_token

2. 调用Tracking API查询物流信息

拿到access_token后,在请求头中携带Authorization: Bearer {access_token}即可调用追踪接口:

# 替换为你的20位追踪号码
tracking_number <- "YOUR_TRACKING_NUMBER"

# 请求追踪信息
tracking_response <- GET(
  url = paste0("https://apis-tem.usps.com/tracking/v3/tracking/", tracking_number, "?expand=summary"),
  add_headers(Authorization = paste("Bearer", access_token))
)

# 解析响应结果
tracking_result <- fromJSON(content(tracking_response, "text"))
print(tracking_result)

关键注意事项

  • 测试环境使用apis-tem.usps.com,生产环境切换为apis-usps.com
  • Access Token有有效期(默认3600秒),如果需要多次调用,建议缓存token并在过期前重新获取
  • 确认你的USERID和密码是从USPS Web Tools注册获取的有效凭证

内容的提问来源于stack exchange,提问作者Alex G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:50:04