当前位置: 首页 > 知识库问答 >
问题:

Google Leapi:错误403:请求的身份验证范围不足。更多详情:原因:不充分权限,信息:不充分权限

柳项明
2023-03-14

我试图用Gmail API发送电子邮件。但是我得到了这个错误

Google Leapi:错误403:请求的身份验证范围不足。更多详情:原因:不充分权限,信息:不充分权限

我想它可能与配置有关,我也遵循了谷歌的Go快速入门这里是getClient函数:

func getClient(config *oauth2.Config) *http.Client {
    // The file token.json stores the user's access and refresh tokens, and is
    // created automatically when the authorization flow completes for the first
    // time.
    tokFile := "token.json"
    tok, err := tokenFromFile(tokFile)

    if err != nil {
            tok = getTokenFromWeb(config)
            saveToken(tokFile, tok)
    }
    return config.Client(context.Background(), tok)
}

以下是发送代码:

case "pass":
    
    templateData := struct {
        VerPass string
        
    }{
        VerPass: cont1,
        
    }

    emailBody, err := parseTemplate("ver.html", templateData)
    if err != nil {
        fmt.Println("Parse Err")
        return false, err
     }
     
    var message gmail.Message
 
    emailTo := "To: " + to + "\r\n"
    subject := "Subject: " + sub + "\n"
    mime := "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n"
    msg := []byte(emailTo + subject + mime + "\n" + emailBody)
 
    message.Raw = base64.URLEncoding.EncodeToString(msg)
 
    // Send the message
    fmt.Println("OOOOOYYYYY")
    //here is the problem
    b, err := ioutil.ReadFile("credentials.json")
if err != nil {
        log.Fatalf("Unable to read client secret file: %v", err)
}

// If modifying these scopes, delete your previously saved token.json.
config, err := google.ConfigFromJSON(b, gmail.MailGoogleComScope)

if err != nil {
        log.Fatalf("Unable to parse client secret file to config: %v", err)
}
    client := getClient(config)

srv, err := gmail.New(client)
if err != nil {
        log.Fatalf("Unable to retrieve Gmail client: %v", err)
}
//GmailService
    res, err := srv.Users.Messages.Send("me", &message).Do() // change me
    if err != nil {
        fmt.Println("Res Err")
        fmt.Println(err)
       return false, err
    }
    fmt.Println(res)

我尝试配置,err:=google。ConfigFromJSON(b, gmail.MailGoogleComScope),我尝试使用Gmail ReadonlyScopegmail。Gmail SendScope,但我得到了同样的错误。

共有1个答案

高兴贤
2023-03-14

请求的身份验证作用域不足。

意味着授权您的应用程序访问其数据的用户没有授予您的应用程序足够的权限来执行您试图执行的操作。

您可能正在使用该用户。消息发送方法。如果查看文档,您会发现该方法要求用户获得以下范围之一的授权。

如果你确实遵循了谷歌的快速入门,那么你使用了gmail。Gmail ReadonlyScope作为一个范围,它只给您只读访问。然而,您的代码现在倾向于包含邮件。MailGoogleComScope范围应该工作,但是我猜你忽略了重新授权的应用程序。没有看到教程中的评论

//如果修改这些作用域,请删除以前保存的令牌。json。

我建议您删除token.json,然后应用程序将要求您再次授权,您的代码应该使用提升的权限。

 类似资料:
  • 我已成功完成此处的快速入门演示: https://developers.google.com/drive/api/v3/quickstart/python 我想更进一步,开始上传文件和文件夹。为此,我将范围替换为:SCOPES=['https://www.googleapis.com/auth/drive'] 我也已经把行刑换成了 然后我得到一个错误:GoogleAppClient。错误。Http

  • 我试图获取Youtube评论,但它抛出了这个异常 - {“Google.api.Requests.RequestError\r\n权限不足:请求的身份验证作用域不足。[403]\r\nErrors[\r\n\tMessage[权限不足:申请的身份验证范围不足。]位置[-]原因:[UnficificientPermissions]域[全局]\r\r\m\n”} 凭证源代码- 这是它抛出异常的行- v

  • null 所用程序: 获取身份验证响应后创建Google analytics service对象。/li> 脚本: null

  • 我正在尝试从我的谷歌驱动器下载一个电子表格。我正在遵循这个参考,并且在权限方面有问题。我从https://www.googleapis.com/auth/drive.file开始,得到了这个 阅读权限文档可以阅读以下内容https://www.googleapis.com/auth/drive. 访问用户所有文件(不包括应用程序数据文件夹)的完整许可范围。 但即使使用这个范围,我仍然得到相同的错误

  • 我第一次尝试使用Google Firestore,通过Google api身份验证进行身份验证。我要做的第一件事是用几个方法来填充数据库,当我等待批处理任务时,会出现以下错误: 我几乎找不到谷歌认证连接firestore的方法。首先,我使用google console为我的应用程序提供的密码使用此方法进行身份验证: 使用在我的google控制台中为应用程序配置的相同作用域(我在同一应用程序中使用g