32

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.enter image description here

j0k
  • 22,303
  • 28
  • 77
  • 86
Alexandru Circus
  • 5,378
  • 7
  • 47
  • 84

7 Answers7

25

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.

Community
  • 1
  • 1
Jan Gerlinger
  • 7,236
  • 1
  • 44
  • 52
  • It's not working only with access_code. String authorizationUrl = new GoogleAuthorizationCodeRequestUrl( OAuth2ClientCredentials.CLIENT_ID, OAuth2ClientCredentials.OAUTH_CALLBACK_URL, v).build(); – Alexandru Circus Jul 03 '12 at 08:21
  • and mWebView.loadUrl(authorizationUrl); – Alexandru Circus Jul 03 '12 at 08:21
  • above will provide access code but I need access token and I need client secret to exchange the code for the access token. Is there any other solution besides using a Simple API Access key.? I need to get user profile – Alexandru Circus Jul 03 '12 at 08:23
  • Server returned HTTP response code: 401 for URL: https://www.googleapis.com/oauth2/v1/userinfo?access_token=4/PJiXNBRRdGBYqwXcjbncU2bTXWIu.wh4n9s6ST8wYOl05ti8Z... – Alexandru Circus Jul 03 '12 at 08:27
  • above is when trying to access user profile using the initial code token. I guess exchanging it with an access token will solve the 401 error. – Alexandru Circus Jul 03 '12 at 08:28
  • Thanks. I will try this. Please note that I tried(without success) in the past to use Accountmanager, but the tokens provided by it were client login tokens, not OAUTH, so I can't access user info with client login. http://stackoverflow.com/questions/9872495/gdata-get-accountself-contact-first-and-last-name. But I see now that i can get an OAUTh token from android Acc Manager. Thanks again. – Alexandru Circus Jul 04 '12 at 11:08
  • 4
    Thanks, it is working. I implemented all from https://developers.google.com/google-apps/tasks/oauth-and-tasks-on-android and changed String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/tasks"; into String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/userinfo.profile"; Thanks, you saved me Jan. – Alexandru Circus Jul 04 '12 at 12:05
  • 1
    The link to the example you provide Jan Gerlinger, is to an article that has been deprecated. I think the final solution might be to use the Google+ Sign In procedure https://developers.google.com/+/mobile/android/getting-started – marienke Feb 27 '14 at 11:43
  • I cant see the client ID in any of the code examples in the links here. I need to put the client id somewhere right?? – Ofek Agmon Jan 14 '15 at 06:15
10

Click on "Download JSON " Is it what you're looking for ? enter image description here

George Nguyen
  • 2,169
  • 1
  • 16
  • 7
  • 1
    Cheers, I found the secrets inside my JSON! – Jack Mar 12 '14 at 18:07
  • 20
    i downloaded it. but, i did not found secret id. how can i get – harikrishnan Oct 13 '14 at 12:23
  • @Jack I also didn't find it. – curiousMind Sep 27 '17 at 13:44
  • @harikrishnan I have the same issue. The Google docs want me to send a client secret I never got. Also the JSON and the Google Developer Console does not contain a client secret. EDIT: I know that it is a old comment of you, but it seems like Google removed the client secret completly but did not update their documentation. – user3772108 Jul 09 '21 at 13:42
3

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.

2

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

click this message to use 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.

here we can see the client secret for android apps

akira
  • 382
  • 2
  • 8
0

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.

Mirlo
  • 556
  • 7
  • 23
0

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.

-2

Another solution is that you have to create a client ID with the type of "Installed Application" then you will have the Client secret

George Nguyen
  • 2,169
  • 1
  • 16
  • 7