1

googleウェブマスターコンソールの新しいWeb API(v3)からデータを取得するコードを用意しました。エラーとGoogle Search Console API呼び出しのバックエンドエラー(HttpError 500)

import os 
from oauth2client.service_account import ServiceAccountCredentials 
import httplib2 
from apiclient.discovery import build 
import googleapiclient 
import json 


client_email = '<ACCOUNT_IDENTIFIER>@<PROJECT_IDENTIFIER>.iam.gserviceaccount.com' 
scopes = ['https://www.googleapis.com/auth/webmasters.readonly', 
     'https://www.googleapis.com/auth/webmasters'] 

private_key_path = os.getcwd() + os.path.normpath('/key.p12') 
http = httplib2.Http() 
credentials = ServiceAccountCredentials.from_p12_keyfile(client_email, 
                 private_key_path, 
                 private_key_password="notasecret", 
                 scopes=scopes 
                 ) 
http_auth = credentials.authorize(http) 
webmasters_service = build('webmasters', 'v3', credentials=credentials, http=http_auth) 
query_params = {"startDate": "2016-03-01", "endDate": "2016-03-02"} 
try: 
    quered_results = webmasters_service.searchanalytics().query(
     key="<KEY>", 
     siteUrl="http://<SITE_DOMAIN>/", 
     body=json.dumps(query_params), 
     fields="rows", 
     alt="json" 
    ).execute() 
    print(quered_results) 
except googleapiclient.errors.HttpError as e: 
    print(e) 

実行結果:

<HttpError 500 when requesting https://www.googleapis.com/webmasters/v3/sites/http%3A%2F%2F<SITE_DOMAIN>%2F/searchAnalytics/query?key=<KEY>&alt=json&fields=rows returned "Backend Error" 

上記のコードは、P12形式のSSH鍵付き許可するためのものです。キーファイルが正しい。 client_secrets.jsonを使用すると、同じエラーで終了します。エラーのJSONは次のとおりです。

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "backendError", 
    "message": "Backend Error", 
    } 
    ], 
    "code": 500, 
    "message": "Backend Error" 
} 
} 
  • 私はウェブマスターツールのコンソールに接続し、メールをしました。
  • 許可使用されるキー/アカウントのエラー

任意のアイデアがありませんので、動作しているようですか?

https://developers.google.com/apis-explorerで「要求本文」が正しく設定されていないのに、同じエラーが発生していますが、JSONでエラーが表示されません。ところで、それについてのいくつかの検証メッセージを持っていいです...

答えて

0

それを見つけました!本文のパラメータは実際にはPythonオブジェクトではなく、JSONでフォーマットされた文字列でなければなりません!

body=json.dumps(query_params), 

であるべき

body=query_params, 
関連する問題