Я пытаюсь получить делегатов для почтового ящика, используя Gmail API.Мое приложение работает на Google App-engine и имеет функцию добавления, удаления и получения делегатов с помощью API настройки электронной почты.Теперь я планирую перенести эти функции в Gmail API, так как API настройки электронной почты устареет.
В плане технологии я использую язык Java.Я выполнил все шаги, предусмотренные Gmail API документация .Аутентификация в Gmail API прошла успешно.Но когда я пытаюсь получить делегатов, выдается следующее сообщение об ошибке:
404 Not Found {"code": 404, "errors": [{"domain": "global","message": "Недопустимый делегат", "причина": "notFound"}], "message": "Недопустимый делегат"}
А внутри консоли ниже ошибка-
* com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 не найдено {"код": 404, "ошибки": [{"домен": "глобальный"," message ":" Недопустимый делегат "," причина ":" notFound "}]," message ":" Недопустимый делегат "}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.fro m (GoogleJsonResponseException.java:150) по адресу com.google.api.client.googleapis.services.json.AbstractGoogleJsonClie ntRequest.newExceptionOnError (AbstractGoogleJsonClientRequest.java:113) по адресу com.google.ooglej.isis.service.seri..AbstractGoogleJsonClie ntRequest.newExceptionOnError (AbstractGoogleJsonClientRequest.java:40) на com.google.api.client.googleapis.services.AbstractGoogleClientRequest $ 1.interceptResponse (AbstractGoogleClientRequest.java:321) на com.google.api.client.http.HttpRequest.execute (HttpRequest.java:1067.i.coogle).googleapis.services..AbstractGoogleClientRequest .execute (AbstractGoogleClientRequest.java:469) в com.aeegle.services.GmailService.retrieveEmailDelegates (GmailService.java: 106) в com.aeegle.DAOImpl.EmailDAOImpl.getDelegatesGmail (EmailDAOImpl.java:1 43) в controllers.DelegateController.getListDelegatesGmail (DelegateControll er.java:82) в sun.refmp.No.(Собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. Java: 62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAcces sorImpl.java:43) methodd.java.lan498) на play.mvc.ActionInvoker.invokeWithContinuation (ActionInvoker.java:557) на play.mvc.ActionInvoker.invoke (ActionInvoker.java:508) на play.mvc.ActionInvoker.invokeControllerMethod (ActionInvoker.java:484 at)mvc.ActionInvoker.invokeControllerMethod (ActionInvoker.java:479) в play.mvc.ActionInvoker.invoke (ActionInvoker.java:161) в play.server.PlayHandler $ NettyInvocation.execute (PlayHandler.java:255) в игре.run (Invoker.java:278) в play.server.PlayHandler $ NettyInvocation.run (PlayHandler.java:233) в java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:51 1) в java.util.concurrent.FutureTask.run (FutureTask.java:266) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTuture.получить доступ к $ 201 (ScheduledThreadPoolExecutor.java:180) по адресу java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.выполнить (ScheduledThreadPoolExecutor.java:293) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149)в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor .java: 624) в java.lang.Thread.run (Thread.java:748) *
Вы можете наблюдать номер строки GmailService106 есть проблема.Теперь я собираюсь опубликовать мой код 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;
}
Пожалуйста, помогите мне в этом, так как я все еще запускаю это на моей машине localhost.