0

Я пытаюсь подключиться к Google Cloud Endpoints API, который работает как приложение Appengine:Google Cloud Endpoints: вопросы аутентификации (ошибка 403)

@endpoints.api(name='helloworldendpoints', allowed_client_ids=["1234", "12345"], version='v1', auth_level=endpoints.AUTH_LEVEL.REQUIRED) 
class HelloWorldApi(remote.Service): 
... 

запрос API выглядит следующим образом:

scopes = ["https://www.googleapis.com/auth/userinfo.email"] 
credentials = ServiceAccountCredentials.from_json_keyfile_name("CloudEndpointsClient.json", scopes) 

from httplib2 import Http 
http_auth = credentials.authorize(Http()) 

from apiclient.discovery import build 

api_root = 'https://myapp.appspot.com/_ah/api' 
api = 'helloworldendpoints' 
version = 'v1' 
discovery_url = '%s/discovery/v1/apis/%s/%s/rest' % (api_root, api, version) 
service = build(api, version, discoveryServiceUrl=discovery_url) 


response = service.myFunction(myparameter = "123456").execute(http=http_auth)# 
print response 

Запросы работают хорошо, если я удаляю требования аутентификации. Я знаю, что аутентификация работает с ошибкой, если после аутентификации.

Сообщение об ошибке я получаю:

googleapiclient.errors.HttpError: https://my-app.appspot.com/_ah/api/helloworldendpoints/v1/obtainScoreFromEmail?myparameter=1234&alt=json returned "Access Not Configured. has not been used in project 123456789 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/helloworldendpoints/overview?project=123456789 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.">

Я не могу позволить API в моем проекте Облако Google, так как API не существует.

+0

, когда вы знаете, что проекта не существует, почему вы его не создаете? – Rajat

+0

Проект существует. Что не существует, чтобы включить службу API. – Luka

+0

Итак, в «Google Console> Library» вы можете продолжить и активировать api, который вы собираетесь использовать. Какой именно api вы не можете найти – Rajat

ответ

0

Что я нашел для работы, это взломать. Я использовал аутентификацию пользователя (вместо сервера) в том же проекте для того же самого API, который работал (https://cloud.google.com/endpoints/docs/frameworks/python/access_from_python).

После того, как я вернулся к первоначальному серверу auth. метод начал работать.