Xpage java代码与gmail api进行交互

时间:2015-10-06 22:22:12

标签: java xpages gmail-api

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

尝试使用此链接https://developers.google.com/gmail/api/quickstart/java的示例Java代码,但没有任何运气,如下所示:

  1. 导入必要的gmail api .jar最新版本。
  2. 安装的jre是8并且jre 8路径的设置构建路径
  3. Complier JRE版本仍然相同,默认为1.5。
  4. 任何帮助将不胜感激。

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

    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();
           }
       }
    

2 个答案:

答案 0 :(得分:2)

好的,您需要确保API实际上可以在Java 1.6上运行,如提及的那样。

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

<强> 1。在JVM ext / lib目录中

这很好用 - 维护是一件很痛苦的事情,因为需要在文件系统(也在Domino Designer中)中完成。这适用于XPage和代理。

<强> 2。将jar附加到您的代理/脚本库

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

第3。将jar添加为jar设计元素

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

<强> 4。将jar添加为插件

你可以将jar包装到一个OSGi插件中并在服务器范围内部署它(上面的2和3只使jar可以在jar内部使用jar)。这是我的首选方式。我写了article about the details,可以帮助你。

/约翰

答案 1 :(得分:0)

  1. 已安装jdk1.7.079
  2. 在项目属性中 - &gt; Java Build Path将其设置为JRE系统库(jdk1.7.079)
  3. 没有更多的编译错误。