Reputation: 5538
I tried to create a testing client id for an android app which uses OAUTH 2.0 as login for retrieving user profile. I followed the steps to complete the creation of the client id on google console, but I do not see anywhere the client secret. I'm trying to help my employer with getting google credentials for it's app. I know how to implement OAUTH 2.0 in android, but I need client secret to exchange the code with access token.
First, I selected "Google+ API" from Services tab.
Then followed the on screen steps from API Access tab.
Upvotes: 34
Views: 57918
Reputation: 1779
For any other types of app than Web App, google doesn't produce Client Secret. If you really need client secret, then you must set your application type web.
Upvotes: 0
Reputation: 445
What worked in my case (I need Client ID and Client Secret for Unity) was to create first Web Application type of application. It contains both Client ID and Secret. Then I used it in Unity as input and then I registered in Google Console a new OAuth ID client for Android application (using SHA1 and module name. With this it finally worked, however it looks more like a workaround and not proper way of working.
Upvotes: 0
Reputation: 3457
When you update any changes in the credential, make sure you could see the client ID and secret in the dashboard before downloading.
Google cloud takes at the least 10 seconds to regenerate the client id and add it in the json.
Once json is downloaded you can check for client_secret
to be present.
Upvotes: 1
Reputation: 569
Now that the type Other is unavailable, I used type Desktop since I wish to upload using Visual Studio which is a Desktop app. That worked, I got the client id and client secret.
Upvotes: 1
Reputation: 141
Since almost everything from the accepted answer has been deprecated, I thought I'd share what I've found.
I needed the People API which requires a client secret. What Google recommends for using People API with Android is,
Select the application type Other, enter the name "People API Quickstart", and click the Create button.
Found here: https://developers.google.com/people/quickstart/java (Step 1 part e)
So if you need a client secret, you might consider using the Other type. Of course, follow the documentation for your specific API first.
Upvotes: 3
Reputation: 674
source said that : Visit the Google Developers Console to obtain OAuth 2.0 credentials such as a client ID and client secret that are known to both Google and your application. The set of values varies based on what type of application you are building. For example, a JavaScript application does not require a secret, but a web server application does.
Upvotes: -1
Reputation: 482
Just today I found out that on the new Cloud Console we can see the client secret for android apps - while in the old google console we just can't.
To use the new Cloud console, just click on the message "We are improving the experience. Try the new Cloud Console." Google will ask for a SMS confirmation. Now you'll be redirected to the new cloud console
Now, just select your project, click on "Registered Apps" on the left menu, selected your android app, and voilá, on oAuth 2.0 Client Id you'll see your client secret. No idea why on the old google console it's not displayed, but if you really need a client secret key, it's there.
Upvotes: 2
Reputation: 2169
Another solution is that you have to create a client ID with the type of "Installed Application" then you will have the Client secret
Upvotes: -2
Reputation: 7415
It seems that Google finally ditched the unnecessary client_secret
for installable applications and is not yet up-to-date with their documentation.
You should check if you already get an access_token
in the initial OAuth request like it's handled on Facebook.
Another possibility would be to fall back to using a Simple API Access key.
Update:
First method seems to not work with Google.
The recommended way for Android is to use AccountManager instead of baking your own requests. Follow this example to see how this is implemented and how you get an AuthToken using a Simple API Access key. Instead of using the Tasks API you can then include the OAuth2 API library to retrieve the userinfo.
Upvotes: 26