OuterSpace
OuterSpace

Reputation: 425

Pub sub with REST API - the request is missing a valid API Key

I am using the following code to do a test publish to pubsub

var data = {
  file: 'ciao',
  content_type: 'image/png'
};



needle
  .post('https://pubsub.googleapis.com/v1/projects/topic:publish', data, {
      multipart: true
    },
    function(err, resp) {
      if (err)
        console.log('Error: ' + err.message);
      else
        console.log('OK.' + JSON.stringify(resp.body));
    });

But I get the error

{"error":{"code":403,"message":"The request is missing a valid API key.","status":"PERMISSION_DENIED"}}

Do I need a service account authorized to PubSub? Any hint on how to solve this issue?

Upvotes: 2

Views: 2258

Answers (1)

Betjens
Betjens

Reputation: 1401

You will need to verify the credentials you are using and the account permissions that those credentials have.

One of the popular approach is to have a service-account.json file with the credential information and use it as an enviroment variable GOOGLE_APPLICATION_CREDENTIALS. You can get that file when creating a credential account for your pub/sub application. Examples on how to create that you can find it on this link under Setting up authentication for server to server production applications..

Now you also need to verify the permissions and roles you credential account have. For cloud pub/sub there are lot of roles, like roles/editor or roles/pubsub.editor for the scope of your test run. You can even use a sample called testing_permissions from the official documentation to test your access. For a full lists of permissions and roles please see this site.

For more details you can check the access and authentication page

Upvotes: 2

Related Questions