代码之家  ›  专栏  ›  技术社区  ›  lakshmi

使用GMAIL自动转发创建时权限不足

  •  2
  • lakshmi  · 技术社区  · 6 年前
    String[] googleSCOPES = {GmailScopes.GMAIL_LABELS, GmailScopes.GMAIL_READONLY, GmailScopes.MAIL_GOOGLE_COM};
    
                GoogleAccountCredential googleAccountCredential = GoogleAccountCredential.usingOAuth2(
                        context, Arrays.asList(googleSCOPES))
                        .setBackOff(new ExponentialBackOff());
                googleAccountCredential.setSelectedAccountName(appSettings.retrieve(Params.GMAIL_ACCOUNT_NAME));
                com.google.api.services.gmail.Gmail mService = new com.google.api.services.gmail.Gmail.Builder(
                        AndroidHttp.newCompatibleTransport(), JacksonFactory.getDefaultInstance(), googleAccountCredential)
                        .setApplicationName("StaffConnect")
                        .build();
                ForwardingAddress address = new ForwardingAddress()
                        .setForwardingEmail(emailAddress);
                ForwardingAddress createAddressResult = null;
                try {
                    createAddressResult = mService.users().settings().forwardingAddresses()
                            .create("me", address).execute();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (createAddressResult.getVerificationStatus().equals("accepted")) {
                        AutoForwarding autoForwarding = new AutoForwarding()
                                .setEnabled(true)
                                .setEmailAddress(address.getForwardingEmail())
                                .setDisposition("trash");
                        try {
                            autoForwarding = mService.users().settings().updateAutoForwarding("me", autoForwarding).execute();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
    }
    

    错误:

        com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
    {
      "code" : 403,
      "errors" : [ {
        "domain" : "global",
        "message" : "Insufficient Permission",
        "reason" : "insufficientPermissions"
      } ],
      "message" : "Insufficient Permission"
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Linda Lawton - DaImTo    6 年前

    “权限不足”

    表示当前经过身份验证的用户没有权限执行您通过应用程序请求使用的操作。权限在身份验证时授予,称为作用域。

    Users.settings.forwardingAddresses: create 请求需要以下范围的授权

    范围

    https://www.googleapis.com/auth/gmail.settings.sharing

    您需要重新授权您的用户并请求其他作用域。