title: How to subscribe to changes on Google Drive using watch
body: <p>I am quite stuck in trying to subscribe to changes on a google drive folder. My python3 code is as follows: 
          SCOPES = '<a href="https://www.googleapis.com/auth/drive.readonly" rel="nofollow noreferrer">https://www.googleapis.com/auth/drive.readonly</a>'
      store = file.Storage('storage.json')</p>
  
  <pre><code>credentials = store.get()
  if not credentials or credentials.invalid:
      flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
      credentials = tools.run_flow(flow, store)
  
  # This starts the authorization process
  DRIVE = discovery.build('drive', 'v3', http=credentials.authorize(Http()))
  
  try:
      with open('saved_start_page_token.json') as json_data:
          d = json.load(json_data)
          try:
              saved_start_page_token = d["startPageToken"]
          except KeyError:
              saved_start_page_token = d["newStartPageToken"]
          print("Using saved token: %s" % saved_start_page_token)
  
  except FileNotFoundError:
      response = DRIVE.changes().getStartPageToken().execute()
      with open("saved_start_page_token.json", "w") as token:
          json.dump(response, token)
      saved_start_page_token = response.get('startPageToken')
      print('Start token: %s' % saved_start_page_token)
  
  body = dict()
  body["kind"] = "api#channel"
  body["id"] = str(uuid.uuid4())  # TODO: do I have to do something with this channel id?
  print(body["id"])
  body["resourceId"] = 'web_hook'
  body["resourceUri"] = 'https://meg-wm-it-change.appspot.com/notifications/'
  json_body = json.dumps(body)
  print(json_body)
  
  request = DRIVE.changes().watch(pageToken = saved_start_page_token, body=json_body)
  response = request.execute()
  
  return response.body
  </code></pre>
  
  <p>Except this throws the error </p>
  
  <pre><code>googleapiclient.errors.HttpError: &lt;HttpError 400 when requesting https://www.googleapis.com/drive/v3/changes/watch?pageToken=163958&amp;alt=json returned "entity.resource"&gt;
  </code></pre>
  
  <p>Which I can't quite decipher. I'm sure my issue will be not understanding the documentation, (ie, I don't understand whether the params go versus the body of this request, and can't find any code samples) but any help would be appreciated! </p>