【问题标题】:gmail API delete not workinggmail API删除不起作用
【发布时间】:2014-12-01 05:25:15
【问题描述】:

我在使用 gmail Java API 时遇到了一点问题。本质上,我只是重用了他们的示例代码并对其进行了修改以删除所有符合查询的电子邮件。很简单,但没有电子邮件被删除。有什么想法吗?

public static void main (String [] args) throws IOException {
    HttpTransport httpTransport = new NetHttpTransport();
    JsonFactory jsonFactory = new JacksonFactory();

    clientSecrets = GoogleClientSecrets.load(jsonFactory,  new FileReader(CLIENT_SECRET_PATH));

    // Allow user to authorize via url.
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            httpTransport, jsonFactory, clientSecrets, Arrays.asList(SCOPE))
    .setAccessType("online")
    .setApprovalPrompt("auto").build();

    String url = flow.newAuthorizationUrl().setRedirectUri(GoogleOAuthConstants.OOB_REDIRECT_URI)
            .build();
    System.out.println("Please open the following URL in your browser then type"
            + " the authorization code:\n" + url);

    // Read code entered by user.
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String code = br.readLine();

    // Generate Credential using retrieved code.
    GoogleTokenResponse response = flow.newTokenRequest(code)
            .setRedirectUri(GoogleOAuthConstants.OOB_REDIRECT_URI).execute();
    GoogleCredential credential = new GoogleCredential()
    .setFromTokenResponse(response);

    // Create a new authorized Gmail API client
    Gmail service = new Gmail.Builder(httpTransport, jsonFactory, credential)
    .setApplicationName(APP_NAME).build();

    // Retrieve a page of Threads; max of 100 by default.
    ListThreadsResponse threadsResponse = service.users().threads().list(USER).setQ("category:Promotions").execute();
    List<Thread> threads = threadsResponse.getThreads();

    // Delete each Thread.
    for (Thread thread : threads) {
              String ThreadID = thread.getId();
              service.users().threads().delete(USER, ThreadID);

    }

}

【问题讨论】:

    标签: java gmail google-api-java-client gmail-api


    【解决方案1】:

    你必须 .execute() 那个删除操作。 :)

    【讨论】:

    • 保佑,谢谢。知道我遗漏了一些明显的东西!
    【解决方案2】:

    您是否尝试过 REST 客户端。它运行良好。 例子: 如果要删除消息,可以尝试通过 REST 跟踪端点。 https://www.googleapis.com/gmail/v1/users/example@gmail.com/messages/14b067fa9851edc2

    您将收到 204 响应,并且您的消息将被删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-13
      • 2018-07-25
      • 2017-08-02
      • 2016-05-20
      • 2020-08-06
      • 2021-05-17
      • 2012-10-26
      • 1970-01-01
      相关资源
      最近更新 更多