【问题标题】:Insufficient Permission when using GMAIL AutoForwarding create使用 GMAIL AutoForwarding 创建时权限不足
【发布时间】:2018-09-25 21:11:28
【问题描述】:
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"
}

【问题讨论】:

  • createAddressResult = mService.users().settings().forwardingAddresses() .create("me", address).execute();在这一点上,我遇到了异常。如果尝试检索收件箱。得到也不例外。只为转发,得到如此。
  • code sn-p in code 格式

标签: android google-api google-oauth gmail-api


【解决方案1】:

“权限不足”

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

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

范围

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

您需要重新验证您的用户并请求额外的范围。

【讨论】:

  • 谢谢你......它现在在添加 seetings.sharing 范围后工作并且需要处理异常。
  • 添加所有权限后。我仍然收到错误。 com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden { "code" : 403, "errors" : [ { "domain" : "global", "message" : "访问仅限于已被委托域范围权限”,“原因”:“禁止”}],“消息”:“访问仅限于已被委托域范围权限的服务帐户”}
  • 服务帐户不能使用 Gmail,除非它是一个 gsuite 电子邮件帐户并且您已设置域范围的权限。您的 gsuite 管理员可以帮助您。 developers.google.com/admin-sdk/reports/v1/guides/delegation你应该为这个错误打开一个新问题。
猜你喜欢
  • 1970-01-01
  • 2017-04-24
  • 2015-08-20
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 2013-04-14
相关资源
最近更新 更多