Guy Scott-South
Guy Scott-South

Reputation: 11

Google my business service account - Requested entity not found using python requests

I'm trying to retrieve data from the google business api, I've set up a service account and written code that successfully generates a bearer authorization token. I've then passed this as a header through a get request but I receive this response: {'error': {'code': 404, 'message': 'Requested entity was not found.', 'status': 'NOT_FOUND'}}

Using postman and sending an oauth request returns the desired information, but as this is meant to be set for automated unattended running, I wanted to explore the service account approach. Myscript is here:

'''

import jwt
import requests
import time
import json

iat = time.time()


exp = iat + 3600
payload = {'iss': 'xxxxx.iam.gserviceaccount.com',
           'sub': 'xxxxx.iam.gserviceaccount.com',
           'aud': 'https://mybusiness.googleapis.com/',
           'iat': iat,
           'exp': exp}
additional_headers = {'kid': 'xxxxxx'}
signed_jwt = jwt.encode(payload, "-----BEGIN PRIVATE KEY-----xxxxxxx-----END PRIVATE KEY-----\n", headers=additional_headers,
                       algorithm='RS256')

print(signed_jwt.decode())

response = requests.get('https://mybusiness.googleapis.com/v4/accounts/xxxxxx/locations', headers = {'Authorization':'Bearer '+signed_jwt.decode()})

response = response.json()

print(response)

'''

any help would be greatly appreciated

Upvotes: 1

Views: 1188

Answers (1)

araujophillips
araujophillips

Reputation: 342

In 2020, retrieving data from GMB API using Service Accounts is still not possible (It s*cks!).

Here is the reason: https://support.google.com/business/thread/1856166?msgid=1856214

Upvotes: 1

Related Questions