Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can not use 'my-api-key' on google.cloud.translate API. translate may support OAuth2 now? #2903

Closed
hidehara opened this issue Dec 28, 2016 · 6 comments
Assignees
Labels
api: translation Issues related to the Cloud Translation API API.

Comments

@hidehara
Copy link

I'm trying to use translate API with API-Key.
But I got error when I follow instruction on instruction of following:

Translate Doc mentioned how to use it:

Error:

client = translate.Client('my API Key is given')
...
DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or
explicitly create credential and re-run the application. For more
information, please see
https://developers.google.com/accounts/docs/application-default-credentials.

I just guess , now only OAuth2 is supported by translate API. Because of some information. Should the Doc updates or am I wrong ?

Env:

  • google-cloud-translate (0.22.0)
  • Python 2.7.6 on Ubuntu 14.04
  • pip 9.0.1

Some information:

On Translate Client Document,

And help(translate.Client)

Help on class Client in module google.cloud.translate.client:

class Client(google.cloud.client.Client)
| Client to bundle configuration needed for API requests.
|
...
| :type credentials: :class:oauth2client.client.OAuth2Credentials
| :param credentials: (Optional) The OAuth2 Credentials to use for the
| connection owned by this client. If not passed (and
| if no http object is passed), falls back to the
| default inferred from the environment.
...
| Methods defined here:
|
| init(self, target_language='en', credentials=None, http=None)

@daspecster daspecster added docs api: translation Issues related to the Cloud Translation API API. labels Dec 28, 2016
@daspecster
Copy link
Contributor

@hidehara I'm sorry you ran into trouble with this!
I'll get a PR to update the docs going right now.

Support for the API key was removed via #2823 and released in 0.22.0.

The prefered way to authenticate is with service accounts. Which we do have docs explaining how to set that up here: https://googlecloudplatform.github.io/google-cloud-python/stable/google-cloud-auth.html.

@hidehara
Copy link
Author

@daspecster Thanks for nice reply.

I have a question , why API-Key was removed ?
Is that based on Google Cloud Translate life cycle OR just new policy of google-cloud-python ?

If you have any information, please let's me know.

I read #2823 , so I understand that I should use OAuth2 from 0.22.0.

@daspecster
Copy link
Contributor

Anytime!

@hidehara, I believe that it was always intended that Translate use Service Accounts.
Only recently was Service Account support added to the upstream Translate service.

@jonparrott or @dhermes would know more about it I'm sure.

@hidehara
Copy link
Author

@daspecster , Oh, sorry about type of Account.
I succeed to use translate with 'Service Accounts' by using following sytle.

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/keyfile.json"

I confused to use which type of Account , cause of help(translate.Client). But now I'm OK to use Service Account.

If Google will still support API-Key , It's easy & best way for me (;
Thanks for kind information.

@dhermes
Copy link
Contributor

dhermes commented Dec 28, 2016

@hidehara We elected to drop support for API key auth as a "library decision" but the backend still supports it. The auth doc linked to by @daspecster should have everything needed to authenticate. It's incorrect to say you must use a service account, you can also use OAuth 2.0 based credentials for user accounts. For deployed applications however, we strongly recommend the use of a service account.

The release listed the dropped feature, though maybe this wasn't clear enough?

@hidehara
Copy link
Author

hidehara commented Jan 6, 2017

@dhermes Thanks for above. I'm clear now.

I got background of "library decision" and the backend still supports API Key auth.
I succeed to use a service account, so I may implement with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: translation Issues related to the Cloud Translation API API.
Projects
None yet
Development

No branches or pull requests

3 participants