2014-10-06 69 views
0

我對gmail Java API有點麻煩。實質上,我只是重用了他們的示例代碼並對其進行了修改,以刪除所有適合查詢的電子郵件。很簡單,但沒有電子郵件正在被刪除。有任何想法嗎?gmail 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); 

    } 

} 

回答

1

你必須執行.execute()刪除操作。 :)

+0

祝福,謝謝。知道我錯過了一些明顯的東西! – NoTrueScotsman 2014-10-06 21:27:29