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 代码,但运气不佳,如下所示:
- 导入必要的gmail api .jar 最新版本。
- 已安装的 jre 为 8 并为 jre 8 路径设置构建路径
- 编译器 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,可以在路上帮助你。
/约翰
- 已安装jdk1.7.079
- 在project properties->JavaBuild Path中设置为JRE System Library(jdk1.7.079)
没有更多的编译错误。
使用 Domino Designer 9.0.1FP3 如何使用 Gmail API?
尝试了此 link https://developers.google.com/gmail/api/quickstart/java 中的示例 Java 代码,但运气不佳,如下所示:
- 导入必要的gmail api .jar 最新版本。
- 已安装的 jre 为 8 并为 jre 8 路径设置构建路径
- 编译器 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,可以在路上帮助你。
/约翰
- 已安装jdk1.7.079
- 在project properties->JavaBuild Path中设置为JRE System Library(jdk1.7.079)
没有更多的编译错误。