我正在构建一个通知系统,当员工采取触发DLP规则的操作时,该系统将通知员工。
我想要达到的理想流程是:
Employee采取行动>规则触发>警报发布到PubSub主题>触发器云函数,该函数呈现松弛消息并将其发送给用户。
我陷入困境的关键是让API警报中心发布警报到PubSub主题。我以前用Gmail做过类似的事情,当一个特定的帐户收到一封电子邮件时,我会发布到这个主题。还有一个观看请求将帐户配置为发布到主题。
我查阅了Alert Center的API文档,没有发现一个手表请求或任何类似的东西。
有办法做到这一点吗?还是说这是不可能的?
我在Google中心API参考和Alert Center控制台中搜索到任何将发布配置为公共主题或web钩子的选项。
发布于 2022-11-16 21:55:29
经过几个小时的反复试验,我找到了解决这个问题的方法。
我们必须通过have和updateSetting更新设置,并在正文中发送一个设置对象。
下面是一些python代码,可以使用具有域范围委托的服务帐户来实现这一点:
from google.oauth2 import service_account
from googleapiclient.discovery import build
import json
def main():
# Authenticate the service account
scopes = ['https://www.googleapis.com/auth/apps.alerts']
admin_to_impersonate = '******'
credentials = service_account.Credentials.from_service_account_file(
'client_secrets.json', scopes=scopes, subject=admin_to_impersonate
)
# Build the service
service = build('alertcenter', 'v1beta1', credentials=credentials)
settings = {
'notifications': [
{
'cloudPubsubTopic': {
'topicName': '<YOUR TOPIC NAME>',
'payloadFormat': 'JSON'
}
}
]
}
# Execute a updateSetting request
response = service.v1beta1().updateSettings(body=settings).execute()
print(response)
if __name__ == '__main__':
main()https://stackoverflow.com/questions/74467033
复制相似问题