正如许多其他人写的那样,我也遇到了这个问题,我在尝试set new email signature via the API时得到了它
确切的API调用是:
sendAsConfiguration = {
'signature': 'Test email signature'
}
result = gmailService.users().settings().sendAs().patch(userId='[email protected]',
sendAsEmail="[email protected]",
body=sendAsConfiguration).execute()
确切的回答是:
google.auth.exceptions.RefreshError: ('unauthorized_client: Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested.', '{\n "error": "unauthorized_client",\n "error_description": "Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested."\n}')
我的方案如下:
我需要它来自生产项目,而不是测试项目。
我已经阅读了以下问题和答案(以及它们的许多其他变体)并且没有任何效果answer 1,answer 2
关于答案2,我不确定我理解这个,所以如果这是真正的解决方案,那么获得具体步骤会很棒。
我不是在添加代码本身,因为它确实有效(在不同的项目上测试过,并且有效)。请参阅下面的服务帐户设置
G Suite设置一开始我将两个范围都放在同一个服务帐户下,我得到了相同的结果。在上一次测试中,我尝试了每个只有一个范围的服务帐户。结果相同
很高兴获得帮助,
更新1
更新2
我比较了工作的项目和没有工作的项目。我注意到的唯一区别是,在工作项目中没有API密钥。由于人们写了关于OAuth的文章,我想我可能会给它一个机会。但由于这是一个生产环境,我不想删除它们,特别是因为它是由Google自动生成的,我不知道它们在哪里被使用。我认为他们没有在任何地方使用,但我不确定。
我尝试在工作帐户中添加一个API密钥,它仍然有效,这让我有更多的动力让生产设置不受影响。
更新3
我已经删除了API密钥,但没有帮助。
谢谢
我发现这是服务帐户的角色问题。
这允许我查询任何域用户的日历事件列表。