Xpage java 与 gmail api 交互的代码

Xpage java code to interact with gmail api

使用 Domino Designer 9.0.1FP3 如何使用 Gmail API?

尝试了此 link https://developers.google.com/gmail/api/quickstart/java 中的示例 Java 代码,但运气不佳,如下所示:

  1. 导入必要的gmail api .jar 最新版本。
  2. 已安装的 jre 为 8 并为 jre 8 路径设置构建路径
  3. 编译器 JRE 版本仍然相同,默认为 1.5。

我们将不胜感激。

这是 java 与 gmail 交互的代理 api:

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;

import lotus.domino.*;

import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.util.store.FileDataStoreFactory;
//import com.google.api.*;
/***/The following lines has error "import can not be resolved". I've imported jar and their sources from gmail .jar file zip***
import com.google.api.services.gmail.*;
import com.google.api.services.gmail.GmailScopes;
import com.google.api.services.gmail.model.*;
import com.google.api.services.gmail.Gmail;





public class JavaAgent extends AgentBase {


    public void NotesMain() {
         /** Application name. */
        final String APPLICATION_NAME =
            "Gmail API Java Quickstart";
        /** Directory to store user credentials for this application. */
        final java.io.File DATA_STORE_DIR = new java.io.File(
            System.getProperty("user.home"), ".credentials/gmail-java-quickstart");

        FileDataStoreFactory DATA_STORE_FACTORY;

        /** Global instance of the JSON factory. */
        final JsonFactory JSON_FACTORY =
            JacksonFactory.getDefaultInstance();

        HttpTransport HTTP_TRANSPORT;

        /* Global instance of the scopes required by this quickstart. */
        final List<String> SCOPES =
         //   Arrays.asList(com.google.api.services.gmail.GmailScopes.)//.GMAIL_LABELS);
Arrays.asList(com.google.api.)

        try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();

          // (Your code goes here)

      } catch(Exception e) {
          e.printStackTrace();
       }
   }

好的,您需要确保 API 实际上可以 运行 在 Java 1.6 上,如前所述。

您可以通过多种方式将 jar 添加到您的 Domino:

1.在JVMext/lib目录

这工作正常 - 维护起来很痛苦,因为所有事情都需要在文件系统中完成(也在您的 Domino Designer 中)。这适用于 XPage 和代理。

2。将 jar 附加到您的 agent/script 库

这仅适用于代理(或网络服务)中的代码 运行ning。但是,每次调用代码时都会发生内存泄漏(并且 jar 在内部分离)。所以不要使用这个!

3。添加罐子作为罐子设计元素

这应该也行得通 - 尽管我对此没有太多经验。我担心与上述元素相同的问题 - 但没有证据证明这一点。所以你可能很好用这个 - 只适用于 XPages。

4.将 jar 添加为插件

您可以将 jar 包装到 OSGi 插件中并将其部署到服务器范围(上面的 2 和 3 仅使 jar 可用于 jar 所在的 NSF)。到目前为止,这是我的首选方式。我写了一个article about the details,可以在路上帮助你。

/约翰

  1. 已安装jdk1.7.079
  2. 在project properties->JavaBuild Path中设置为JRE System Library(jdk1.7.079)

没有更多的编译错误。