I want to create watch on cloud pub/sub topic but unable to create it. For that I'm using the rest request
request_Req.post({
url:'https://www.googleapis.com/gmail/v1/users/me/watch',
headers:{
'content-type': 'application/json',
'Authorization': 'Bearer '+ access_token,
},
scope : [
'https://mail.google.com/'
],
'body': JSON.stringify({
'topicName' : "/projects/ProjectId/topics/TopicId",
'labelIds' : ["INBOX"]
});
}),function(error, resp, body){
});
But I'm getting the error message Error sending test message to Cloud
PubSub/projects/ProjectID/topics/TopicId : Resource not found resource=TopicId
The Google Cloud Pubsub topic must exist in the same Google Console project, which is being used to authenticate the users. Check /projects/ProjectId/topics/TopicId your project in Google Console and make sure the Pubsub Topic exists. Also, you must grant access to Gmail services to publish messages to your Pubsub topic via following request:
POST "https://pubsub.googleapis.com/v1beta2/{resource=/projects/**ProjectId**/topics/**TopicId**}:setIamPolicy"
Content-type: application/json
{
"policy": {
"bindings": [{
"role": "roles/pubsub.publisher",
"members": ["serviceAccount:[email protected]"],
}],
}
}
If gmail is not granted the access to publish the message to Pubsub topic, watch request wont be created. Try API explorer to set the permissions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With