Skip to content
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
53 lines (30 sloc) 2.91 KB

How to generate Google API keys

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/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/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!

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.