Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save RoiArthurB/733d249bc6bdbaace526315a759359aa to your computer and use it in GitHub Desktop.
Save RoiArthurB/733d249bc6bdbaace526315a759359aa to your computer and use it in GitHub Desktop.

How to generate Google API keys

CREDITS : chrome-webstore-upload uses the Chrome Web Store API.

Here's how to get its 3 access keys: clientId, clientSecret, refreshToken

Note: the names you enter here don't really matter.

  1. Visit https://console.developers.google.com/apis/api/chromewebstore.googleapis.com/overview

  2. Create a project:

    chrome-apis-create-project
  3. Enter a name (e.g. webstore-yourextensionname)

  4. Visit https://console.developers.google.com/apis/api/chromewebstore.googleapis.com/overview again

  5. Enable the API:

    chrome-apis-enable-webstore
  6. Open Credentials > Create credentials > OAuth client ID:

    create-credentials
  7. Click on Configure consent screen:

    configure consent screen
  8. Enter a product name (e.g. yourextensionname) and save

  9. Select Other and click Create

    client type id
  10. Save your ✅ clientId and ✅ clientSecret, these are your keys.

  11. Place your clientId in this URL and open it:

     https://accounts.google.com/o/oauth2/auth?client_id=YOUR_CLIENT_ID&response_type=code&scope=https://www.googleapis.com/auth/chromewebstore&redirect_uri=urn:ietf:wg:oauth:2.0:oob
    
  12. Follow its steps and copy the authcode it shows on the last page:

    auth code
  13. Run this in your browser console.
    It's a wizard to create and copy a curl into your clipboard:

     copy(`curl "https://accounts.google.com/o/oauth2/token" -d "client_id=${encodeURIComponent(prompt('Enter your clientId'))}&client_secret=${encodeURIComponent(prompt('Enter your clientSecret'))}&code=${encodeURIComponent(prompt('Enter your authcode'))}&grant_type=authorization_code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"`);alert('The curl has been copied. Paste it into your terminal.')
    
  14. Paste the generated code in your terminal and run it.

  15. Save your ✅ refreshToken:

    access token
  16. Done. Now you should have ✅ clientId, ✅ clientSecret and ✅ refreshToken. You can use these for all your extensions, but don't share them!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment