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

Gmail API中邮箱的委托无效

西门靖琪
2023-03-14

我正在尝试获得使用Gmail API的邮箱的代表。我的应用程序运行在谷歌App-engine上,具有使用电子邮件设置API添加、删除、获取委托的功能。现在我正计划将这些功能迁移到Gmail API,因为电子邮件设置API将被弃用。

在技术方面,我使用的是Java语言。我遵循了Gmail API文档提供的所有步骤。对Gmail API的身份验证成功。但当我试图获得代表时,它会给出以下错误-

404找不到{“代码”:404,“错误”:[{“域”:“全局”,“消息”:“无效委托”,“原因”:“找不到”}],“消息”:“无效委托”}

*com.google.api.client.googleapis.json.googleJsonResponseException:404找不到{“代码”:404,“错误”:[{“域”:“全局”,“消息”:“无效委托”,“原因”:“未找到”}],“消息”:“无效委托”}

您可以观察到GmailService行号106有问题。现在我要发布我的java代码。

1:-身份验证代码-

  public Gmail getGmailService(String email) throws Exception {
        System.out.println("-------------getGmailService");

        HttpTransport httpTransport = new NetHttpTransport();
        JacksonFactory jsonFactory = new JacksonFactory();
        Collection<String> SCOPES = new ArrayList<String>();
        SCOPES.add(GmailScopes.GMAIL_SETTINGS_BASIC);
        SCOPES.add(GmailScopes.MAIL_GOOGLE_COM);
        SCOPES.add(GmailScopes.GMAIL_MODIFY);
        SCOPES.add(GmailScopes.GMAIL_READONLY);
        GoogleCredential credential;
        // To load classpath resources.
        ClassLoader classLoader = getClass().getClassLoader();  
        new File(SERVICE_ACCOUNT_PKCS12_FILE_PATH);
        credential = new GoogleCredential.Builder().setTransport(httpTransport).setJsonFactory(jsonFactory)
                .setServiceAccountId(SERVICE_ACCOUNT_EMAIL).setServiceAccountUser(email).setServiceAccountScopes(SCOPES)
                .setServiceAccountPrivateKeyFromP12File(new File(SERVICE_ACCOUNT_PKCS12_FILE_PATH)).build();
        System.out.println("----calling Builder");
        service = new Gmail.Builder(httpTransport, jsonFactory, null).setHttpRequestInitializer(credential)
                .setApplicationName(APPLICATION_NAME).build();

        return service;

    }

2:-下一次尝试使用服务对象获取邮箱的委托-

public Delegate retrieveEmailDelegates(String user, Gmail service) throws Exception {
        if (isBlankOrNullString(user)) {
            throw new IllegalArgumentException();
        }
        Delegate delegatesResponse=null;
        try {

            System.out.println("Call retrieveEmailDelegates for "+user);
             delegatesResponse = service.users().settings().delegates().get(user, "me").execute();
            System.out.println("-------service" + delegatesResponse.getDelegateEmail());

        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }
        return delegatesResponse;
    }

请帮助我,因为我仍然在我的本地主机运行这个。

共有1个答案

叶福
2023-03-14

如果要访问其他用户的电子邮件帐户,必须打开邮件延迟,允许代理人代表他们读取、发送和删除:

>

  • 登录到Google管理控制台。

    注意:使用管理员帐户登录(不以@gmail.com结尾)。

  •  类似资料:
    • 我目前正在iOS下开发一个EWS客户端应用程序,因此我使用Exchange Web服务与Exchange2010服务器通信(纯XML而不是托管API)。我知道如何访问委托的邮箱和日历,并授予或删除委托对邮箱的访问权限,但在访问之前,我需要先找到这些邮箱。也就是说,我想要找到我的当前用户有权访问的所有邮箱(与所有有权访问当前邮箱的用户相反,当前邮箱是有详细文档记录的)。 这个来自2011年的问题(E

    • 主要内容:类委托,属性委托,标准委托,可观察属性 Observable,把属性储存在映射中,Not Null,局部委托属性,属性委托要求,翻译规则,提供委托委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。 Kotlin 直接支持委托模式,更加优雅,简洁。Kotlin 通过关键字 by 实现委托。 类委托 类的委托即一个类中定义的方法实际是调用另一个类的对象的方法来实现的。 以下实例中派生类 Derived 继承了接口

    • 主要内容:声明委托,实例化委托,多播委托(合并委托)C# 中的委托(Delegate)类似于 C 或 C++ 中的函数指针,是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。委托特别适用于实现事件和回调方法,所有的委托都派生自 System.Delegate 类。在实例化委托时,可以将委托的实例与具有相同返回值类型的方法相关联,这样就可以通过委托来调用方法。另外,使用委托还可以将方法作为参数传递给其他方法, 委托具有以下特点: 委托类似

    • 关于“行为委派”的良好讨论可以在 找到。

    • 委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。 Kotlin 直接支持委托模式,更加优雅,简洁。Kotlin 通过关键字 by 实现委托。 类委托 类的委托即一个类中定义的方法实际是调用另一个类的对象的方法来实现的。 以下实例中派生类 Derived 继承了接口 Base 所有方法,并且委托一个传入的 Base 类的

    • 本文向大家介绍C#中的委托使用,包括了C#中的委托使用的使用技巧和注意事项,需要的朋友参考一下 从今天开始写关于C#的系列文章,本篇文章主要讲解C#中的委托使用。 委托其实就是一种数据类型,和int,string是一样的概念。 如果要把一个字符串赋值给一个变量,用string声明一个变量即可。如果要把一个方法赋值给一个变量,那么用什么关键字呢?当然就是用委托了,所以用委托声明的变量就可以接受一个方