2016-07-26 85 views
0

我希望所有的活動列出的所有事件從谷歌日曆中的所有事件,使用此代碼:列表從谷歌日曆

public class GoogleCalendarImpl 
{ 
    private static final String APPLICATION_NAME = ""; 
    private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".store/calendar_sample"); 
    private static FileDataStoreFactory dataStoreFactory; 
    private static HttpTransport httpTransport; 
    private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); 

    private static com.google.api.services.calendar.Calendar client; 

    static final java.util.List<Calendar> addedCalendarsUsingBatch = Lists.newArrayList(); 

    private static final String calId = "[email protected]"; 

    private static Credential authorize() throws Exception 
    { 
     // load client secrets 
     GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, 
      new InputStreamReader(GoogleCalendarImpl.class.getResourceAsStream("/development-241a19899242.json"))); 

     GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
      httpTransport, JSON_FACTORY, clientSecrets, 
      Collections.singleton(CalendarScopes.CALENDAR)).setDataStoreFactory(dataStoreFactory).build(); 
     return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); 
    } 

    public static void main(String[] args) 
    { 
     try 
     { 
      httpTransport = GoogleNetHttpTransport.newTrustedTransport(); 
      dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR); 
      Credential credential = authorize(); 
      client = new com.google.api.services.calendar.Calendar.Builder(
       httpTransport, JSON_FACTORY, credential).setApplicationName(APPLICATION_NAME).build(); 

      getAllEvents(); 

     } 
     catch (IOException e) 
     { 
      System.err.println(e.getMessage()); 
     } 
     catch (Throwable t) 
     { 
      t.printStackTrace(); 
     } 
     System.exit(1); 
    } 

    private static List<Event> getAllEvents() throws IOException 
    { 
     List<Event> events = new ArrayList<>(); 
     String nextPageToken = null; 
     do 
     { 
      System.out.println("Loading page " + nextPageToken); 
      Events feed = client.events().list(calId).setPageToken(nextPageToken).execute(); 
      events.addAll(feed.getItems()); 
      nextPageToken = feed.getNextPageToken(); 
     } 
     while (nextPageToken != null); 

     return events; 
    } 
} 

但是當我運行代碼的Firefox(默認瀏覽器)開始,我重定向至頁面:

Error: redirect_uri_mismatch 

The redirect URI in the request, http://localhost:56345/Callback, does not match the ones authorized for the OAuth client. Visit https://console.developers.google.com/apis/credentials/oauthclient/1024206104045435454813?project=762076316631 to update the authorized redirect URIs. 

我想將Google日曆的所有委託配置到我的帳戶中。

我該如何解決這個問題?

+0

對此有何更新? – noogui

回答

1

如何修復錯誤:redirect_uri_mismatch

enter image description here 轉到您的GDC,並檢查你指定什麼爲URI重定向。它應該是 http://localhost:portnumber/oauth2callback

不要忘記'oauth2'部分。