我尝试使用SetIamPolicy为主题授予发布权限,如下所述:[Google Cloud Pub/Sub API - Push E-mail但尚未成功 - 不确定确切的调用应该是什么样的。
现在我已经制作了一个包含以下内容的json文件:
POST "https://pubsub.googleapis.com/v1beta2/{resource=projects/myproject/topics/mytopic}:setIamPolicy"
Content-type: application/json
{
"policy": {
"bindings": [{
"role": "roles/pubsub.publisher",
"members": ["serviceAccount:gmail-api-push@system.gserviceaccount.com"],
}],
}
}
如下所述:http://developers.google.com/gmail/api/guides/push并将其称为:topics.SetIamPolicy('pubsub_policy.json');
- 但setiampolicy是一个未定义的函数。有任何想法吗?谷歌搜索在node.js
答案 0 :(得分:2)
经过大量搜索后,我发现在Google Developers Console中设置发布权限会更容易。
我确实为nodejs找到了关于 setIamPolicy()的this documentation。
var myPolicy = {
bindings: [
{
role: 'roles/pubsub.subscriber',
members: ['serviceAccount:myotherproject@appspot.gserviceaccount.com']
}
]
};
topic.iam.setPolicy(myPolicy, function(err, policy, apiResponse) {});
subscription.iam.setPolicy(myPolicy, function(err, policy, apiResponse) {});
但我无法让它发挥作用。 topic.iam.setPolicy()不存在。我只看到了这一点:
//console.log(topic)
{
...
iam: {
resource: 'projects/[projectId]/topics/[topicName]',
makeReq_: [Function] }
}