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

Nightbot API认证redirect_uri问题:无需搭建服务器的解决方案咨询

解决Nightbot OAuth2认证无服务器方案及参数错误问题

先解决当前报错

你现在弹出的「Missing required OAuth2 parameter(s)」提示,主要有两个原因:

  1. redirect_uri参数为空——Nightbot OAuth2流程要求这个参数必须填写,且要和你在Nightbot开发者控制台创建应用时配置的Redirect URI完全一致。
  2. 参数名写错了——你代码里的stat应该是state,这是OAuth2要求的必填参数之一。

无需搭建公网服务器的两种方案

方案1:本地回调捕获令牌(自动完成流程)

适合需要多次快速获取令牌的场景,用本地临时HTTP服务器捕获授权回调:

  1. 登录Nightbot开发者后台,把你的应用Redirect URI设置为http://localhost:8080(或http://127.0.0.1:8080,保持和代码一致即可)。
  2. 替换并运行以下代码:
import webbrowser
import urllib.parse
from http.server import BaseHTTPRequestHandler, HTTPServer

# 替换成你的信息
client_id = "你的Client ID"
client_secret = "你的Client Secret"  # 按你需求直接写入
redirect_uri = "http://localhost:8080"
scope = "channel_send commands"

# 本地服务器处理回调
class OAuthHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        # 解析回调URL中的令牌参数
        hash_part = self.path.split('#')[1] if '#' in self.path else ''
        params = urllib.parse.parse_qs(hash_part)
        if 'access_token' in params:
            access_token = params['access_token'][0]
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.wfile.write(f"<html><body>授权成功!Token:<b>{access_token}</b></body></html>".encode())
            print(f"已获取Token:{access_token}")
            # 拿到令牌后关闭服务器
            server.shutdown()
        else:
            self.send_response(400)
            self.end_headers()
            self.wfile.write(b"授权失败,未获取到令牌")

# 构造授权URL
auth_params = {
    'client_id': client_id,
    'redirect_uri': redirect_uri,
    'response_type': 'token',
    'scope': scope,
    'state': 'test'
}
auth_url = 'https://api.nightbot.tv/oauth2/authorize?' + urllib.parse.urlencode(auth_params)

# 打开浏览器发起授权
webbrowser.open(auth_url)

# 启动本地服务器等待回调
server = HTTPServer(('localhost', 8080), OAuthHandler)
print("等待授权完成...")
server.serve_forever()

方案2:手动获取令牌(极简操作)

如果只用几次,直接手动拿令牌最省事:

  1. 把你的Client ID替换到以下URL里,在浏览器打开:
    https://api.nightbot.tv/oauth2/authorize?client_id=你的Client ID&redirect_uri=http://localhost&response_type=token&scope=channel_send commands&state=test
  2. 登录并授权后,浏览器会跳转到http://localhost#access_token=xxx&token_type=bearer&expires_in=xxx,直接从URL的哈希部分复制access_token的值。
  3. 把这个Token直接写在脚本里调用API即可(令牌有过期时间,过期后重复上述步骤重新获取)。

关于client_secret的风险说明

直接把client_secret写在代码里,若代码被他人获取,对方可以用你的应用身份获取更多授权令牌,操作你的Nightbot权限。但仅限你和信任的人使用、不泄露代码的前提下,风险几乎可以忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:54:56