1

Я подготовил код, который должен получать данные из консоли Google для веб-мастеров нового веб-API (v3).Ошибка Backend (HttpError 500) при вызовах API консоли Google Search (webmasters/v3)

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" 

Код сверху для авторизации с SSH ключ с форматом p12. Файл ключа верен. Используя 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. BTW Было бы неплохо иметь какое-то подтверждение о том, что ...

ответ

0

Найденный! body должен быть фактически объектом python, а не форматированной строкой JSON!

body=json.dumps(query_params), 

Должно быть

body=query_params, 
Смежные вопросы