Python 3.x YouTube推送通知通过Webhooks&;PubSubHubbub(Python3)订阅时返回200,但视频上传时没有返回

Python 3.x YouTube推送通知通过Webhooks&;PubSubHubbub(Python3)订阅时返回200,但视频上传时没有返回,python-3.x,youtube,youtube-api,youtube-data-api,webhooks,Python 3.x,Youtube,Youtube Api,Youtube Data Api,Webhooks,我已经在Discord机器人中添加了一个Webhooks侦听器,我正试图使用它在上传新视频时向文本频道发布通知(试图消除我对MEE6的依赖)。当我在订阅通知时,会收到200响应,服务器控制台会打印 66.249.84.174---[27/Apr/2021 05:23:51]“GET/webhooks?hub.topic=https://www.youtube.com/xml/feeds/videos.xml%3Fchannel_id%&hub.challenge= 作为原始->xml正文文本),

我已经在Discord机器人中添加了一个Webhooks侦听器,我正试图使用它在上传新视频时向文本频道发布通知(试图消除我对MEE6的依赖)。当我在订阅通知时,会收到
200
响应,服务器控制台会打印

66.249.84.174---[27/Apr/2021 05:23:51]“GET/webhooks?hub.topic=https://www.youtube.com/xml/feeds/videos.xml%3Fchannel_id%&hub.challenge= 作为原始->xml正文文本),这似乎击中了我的控制台并返回了一个
200
,但我不知道为什么上传时我没有得到任何指示。代码如下:

from flask import Flask, Response, request

app = Flask(__name__)

@app.route('/webhooks', methods=['POST'])
def respond():
    print(request.json);
    return Response(status=200)

@app.route('/webhooks')
def index():
    print(('request', request))
    print('args:', request.args)  # display text in console
    print('form:', request.form)
    print('data:', request.data)
    print('json:', request.json)
    print('files:', request.files)
    
    return request.args.get('data', 'none')  # send text to web browser

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=<MY_PORT>)
从烧瓶导入烧瓶,响应,请求
app=烧瓶(名称)
@app.route('/webhooks',methods=['POST'])
def respond():
打印(request.json);
返回响应(状态=200)
@app.route(“/webhooks”)
def index():
打印((‘请求’,请求))
打印('args:',request.args)#在控制台中显示文本
打印('form:',request.form)
打印('data:',request.data)
打印('json:',request.json)
打印('files:',request.files)
return request.args.get('data','none')#将文本发送到web浏览器
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(主机=0.0.0.0',端口=)

我在PebbleHost上托管,这就是主机设置为0.0.0.0的原因;我为订阅连接了一个单独的IP,映射到一个专用端口。我对Webhooks非常陌生,这是我第一次与YouTube API交互,所以我肯定有一些明显的问题我忽略了。

你必须返回
hub。询问
,以确认订阅

我之前做的一个工作示例

from flask import Flask, request
import xmltodict

app = Flask(__name__)


@app.route("/callback", methods=['POST', 'GET'])
def callback():
    if request.method == 'POST':
        data = xmltodict.parse(request.data)
        print(data)
        return request.data
    else:
        return request.args.get('hub.challenge')



app.run('0.0.0.0')

这是第一个小引语,>>66.249.84.174---[27/Apr/2021 05:23:51]“GET/webhooks?hub.topic=HTTP/1.1”200-你是不是通过返回hub.challenge来尝试的?上传后确实需要20-30秒……而且我也试着运行上面的代码片段,它对我来说非常有效:)非常有魅力,谢谢!