현재 Google Search Console API 및 Flask Dance에서 oauth 작업을 테스트하고 있습니다.flask_dance + Google 검색 콘솔 API searchAnalytics
그것은/사이트를 얻기를위한 좋은 작품,하지만 난 그것을 POST +위한 추가적인 데이터를해야 https://developers.google.com/webmaster-tools/search-console-api-original/v3/searchanalytics/query#try-it에 따르면/검색
와 searchAnalytics를 조회하려고하면 내가
ValueError: View function did not return a response
를 얻을. 예컨대는 : https://developers.google.com/oauthplayground/에서
json={'startDate':'2017-11-01','endDate':'2017-12-01'}
는 다음과 같이하지만, 플라스크 댄스와 함께 슬프게하지 작동합니다. 어떤 아이디어?
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()
성공적으로 테스트했습니다. 나는 그 경로가 무언가 플라스크 댄스와는 분리되어 있다고 생각합니다. 경로는 내가 생각하는 출력 URL을 정의해야합니다. – Tobi
'POST' 메소드를 사용하더라도 여전히 응답 (예 : 결과 또는 확인)을 리턴해야합니다. 내 대답을 업데이트했습니다! –