flask_dance + Google Search Console API searchAnalytics

问题描述 投票:0回答:1

我目前正在测试Google Search Console API和Flask Dance来执行oauth。

它非常适合获取/ sites,但我得到了一个

ValueError:View函数未返回响应

如果我尝试使用/ search查询searchAnalytics

根据https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query#try-it,它必须是POST +附加数据。例如。:

json={'startDate':'2017-11-01','endDate':'2017-12-01'}

https://developers.google.com/oauthplayground/它的工作原理是这样,但烧瓶舞蹈可悲。有任何想法吗?

import os
from werkzeug.contrib.fixers import ProxyFix
from flask import Flask, redirect, url_for
from flask_dance.contrib.google import make_google_blueprint, google
from raven.contrib.flask import Sentry

app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app)
sentry = Sentry(app)
app.secret_key = os.environ.get("FLASK_SECRET_KEY", "supersekrit")
app.config["GOOGLE_OAUTH_CLIENT_ID"] = os.environ.get("GOOGLE_OAUTH_CLIENT_ID")
app.config["GOOGLE_OAUTH_CLIENT_SECRET"] = os.environ.get("GOOGLE_OAUTH_CLIENT_SECRET")
google_bp = make_google_blueprint(scope=["profile", "email", "https://www.googleapis.com/auth/webmasters"])
app.register_blueprint(google_bp, url_prefix="/login")

@app.route("/")
def index():
    return "BlA BLA"

@app.route("/sites")
def sites():
    if not google.authorized:
        return redirect(url_for("google.login"))
    resp = google.get("/webmasters/v3/sites")
    siteEntry = resp.json()["siteEntry"]
    result = ""
    for site in siteEntry:
        result = result + site["siteUrl"] + "</br>"
    return result

@app.route("/search")
def search():
    if not google.authorized:
        return redirect(url_for("google.login"))
    resp = google.post("/webmasters/v3/sites/https%3A%2F%2Fzrce.eu/searchAnalytics/query", json={'startDate':'2017-11-01','endDate':'2017-12-01'})
    print(resp)

if __name__ == "__main__":
    app.run()
python flask oauth google-search-console
1个回答
0
投票

所有API路由都应该返回一些东西,即使它是一个空的响应。

只需返回一个响应,它可以是""resp

© www.soinside.com 2019 - 2024. All rights reserved.