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

Schoology API认证换取access token时报密钥组合不存在或未启用

Schoology API 兑换Access Token报凭证组合无效错误排查

接口返回错误原文:

The consumer_key "{oauth_token}" token "{oauth_token_secret}" combination does not exist or is not enabled.

核心触发原因

  • 参数传错位:兑换access token时混淆了参数含义,误将第一步获取的request token(oauth_token)当作consumer_key传递,或把oauth_token_secret当作oauth_token提交
  • Request Token失效:Schoology颁发的request token有效期仅1小时,且仅支持单次使用,若获取token后等待时间过长、或之前已用该组token发起过兑换请求(无论请求是否成功),token会自动作废
  • 应用状态异常:开发者后台创建的对接应用未启用、被平台禁用/下架,对应的consumer_key、consumer_secret本身处于不可用状态
  • 授权流程缺失:拿到request token后未引导用户跳转至Schoology授权页完成账号授权确认,未激活的request token无法用于兑换access token
  • OAuth签名计算错误:OAuth1.0签名生成逻辑不符合平台规范,比如参数排序错误、URL/特殊字符编码不符合要求、时间戳偏移过大、nonce重复,导致服务端解析到的凭证信息和实际提交的不匹配

排查解决步骤

  • 先核对参数映射关系,禁止错位传参:兑换access token的三类凭证使用规则如下
    • oauth_consumer_key:固定填写开发者后台获取的应用专属consumer_key,不能使用第一步拿到的oauth_token
    • oauth_token:填写用户授权完成后返回的request token值
    • oauth_token_secret:仅用于本地生成OAuth签名,不要作为请求参数直接提交
  • 重置Request Token流程:如果当前持有的oauth_token/oauth_token_secret获取时间超过1小时、或已经发起过兑换请求,直接重新走「申请request token→引导用户授权」全流程,用全新的有效token发起兑换
  • 校验应用状态:登录Schoology开发者后台,确认对接应用状态为已启用,无违规禁用标记,同时核对使用的consumer_key、consumer_secret和后台展示内容完全一致,无多余空格、缺字漏字问题
  • 补全授权流程:必须在拿到request token后,引导用户跳转至Schoology授权页面登录账号并点击同意授权,拿到回调返回的oauth_verifier参数后,再发起access token兑换请求,不得跳过授权步骤
  • 校准OAuth签名逻辑:
    • 签名基字符串严格按照HTTP请求方法&URL编码后的请求接口地址&URL编码后的字典升序排列参数字符串格式拼接
    • 签名密钥固定为URL编码后的consumer_secret&URL编码后的oauth_token_secret格式,注意中间的&符号不能遗漏
    • 确认oauth_timestamp为UTC时区的当前秒级时间戳,和Schoology服务器时间差不超过5分钟;oauth_nonce为每次请求生成的唯一随机字符串,不可重复使用
  • 检查请求传参格式:OAuth相关参数统一放在Authorization请求头中传递,不要同时在POST表单、URL Query中重复提交同名参数,避免服务端解析参数异常

内容的提问来源于stack exchange,提问作者givi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 04:33:43