tofutim
tofutim

Reputation: 23384

How do I use a server apiKey with Chrome Store API?

I generated an server key for Chrome Store API in the Developer Dashboard. I would like to publish a .zip file containing my extension programmatically. The instructions in https://developer.chrome.com/webstore/using_webstore_api show OAuth, Bearer token authentication. How can I use the server key instead?

Things I tried: header "X-ApiKey" = "$apiKey", adding ?key=$apiKey, etc.

In all cases

{"error":{"errors":[{"domain":"global","reason":"required","message":"Login Required","locationType":"header","location":"Authorization"}],"code":401,"message":"Login Required"}}

For this example I have been using Powershell Invoke-RestMethod

$headers = @{
    "X-ApiKey" = $apiKey
    "X-Goog-Api-Version" = "2"
}
$endpoint = "https://www.googleapis.com/upload/chromewebstore/v1.1/items/$appId/?key=$apiKey"
Write-Host $endpoint

$response = Invoke-RestMethod $endpoint -Method Put -InFile $filePath -Headers $headers

More docs, and no clues - https://developer.chrome.com/webstore/api_index

Upvotes: 0

Views: 472

Answers (1)

Patrick
Patrick

Reputation: 506

You can't. API keys are only used to access public data. To use the Chrome Store API, you must authenticate as the user who you wish to publish the app as and, thus, you must supply an OAuth token. Check out the OAuth 2.0 Playground for an example of how to get an OAuth token.

Upvotes: 1

Related Questions