"Request contains an invalid argument" when all arguments seem good

90 views Asked by At

I am using the Google FactCheckTools API, and encountering problems.

Here is my code:

import json
from googleapiclient.discovery import build
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient import errors


# If modifying these scopes, delete the file token.json.
SCOPES = ["https://www.googleapis.com/auth/cloud-platform"]


def main():
  """Calls the Fact Check Tools API."""
  creds = None
  # The file token.json stores the user's access and refresh tokens, and is
  # created automatically when the authorization flow completes for the first
  # time.
  if os.path.exists("token.json"):
    creds = Credentials.from_authorized_user_file("token.json", SCOPES)
    
    
  # If there are no (valid) credentials available, let the user log in.
  
  if not creds or not creds.valid:
      if creds and creds.expired and creds.refresh_token:
          creds.refresh(Request())
      else:
          flow = InstalledAppFlow.from_client_secrets_file(
          "credentials.json", SCOPES)
      creds = flow.run_local_server(port=0)
      # Save the credentials for the next run
      with open("token.json", "w") as token:
          token.write(creds.to_json())

  service = build('factchecktools', 'v1alpha1', credentials=creds)
        
  request = service.claims().search(query='Covid')
  request.execute()

I get the following error when running main():

HttpError: <HttpError 400 when requesting https://factchecktools.googleapis.com/v1alpha1/claims:search?query=Covid&alt=json returned "Request contains an invalid argument.". Details: "Request contains an invalid argument.">

Everything should work fine up to the request.execute() line.

Here is the documentation of the .claims().search() function: https://developers.google.com/fact-check/tools/api/reference/rest/v1alpha1/claims/search The function requires either a query or a PublisherSiteFilter. I have tried with both, and it always gives me the error 400 as above.

Does anyone know why this could be, and how I could fix it? Any suggestions welcome :)

0

There are 0 answers