2012-08-14 47 views
0

我正在開發一個應用程序在Android上。我的應用使用Google Calendar Api,現在我想包含Google Drive Api,所以我更改了某些庫。而我的日曆服務構建具有的代碼已經被廢棄的線,這:與谷歌日曆生成器服務的問題

GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(accesstoken); 

我用:

import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource; 

但現在,我不使用第一行庫的變化之前,代碼,它已被棄用,我需要類似的東西。

這是我的第一個日曆生成器服務:

public static Calendar build(String accessToken) 
     { 
     HttpTransport transport = AndroidHttp.newCompatibleTransport(); 
     JacksonFactory jsonFactory = new JacksonFactory(); 

     GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(accessToken); 


     Calendar service = Calendar.builder(transport, jsonFactory).setApplicationName(Constants.APP_NAME).setJsonHttpRequestInitializer(new JsonHttpRequestInitializer() 
      { 
      @Override 
      public void initialize(JsonHttpRequest request) 
       { 
       CalendarRequest calendarRequest = (CalendarRequest) request; 
       calendarRequest.setKey(Constants.API_KEY); 
       } 
      }).setHttpRequestInitializer(accessProtectedResource).build(); 
     return service; 
     } 
    } 

而現在我想的是,但它不工作:

public static Calendar build(TokenResponse tokenResponse) 
     { 
     HttpTransport transport = AndroidHttp.newCompatibleTransport(); 
     JacksonFactory jsonFactory = new JacksonFactory(); 


     GoogleCredential credential = new GoogleCredential().setFromTokenResponse(tokenResponse); 
     Log.w("1","1"+credential); 


     Calendar service = Calendar.builder(transport, jsonFactory).setApplicationName(Constants.APP_NAME).setJsonHttpRequestInitializer(new JsonHttpRequestInitializer() 
      { 
      @Override 
      public void initialize(JsonHttpRequest request) 
       { 
       CalendarRequest calendarRequest = (CalendarRequest) request; 
       calendarRequest.setKey(Constants.API_KEY); 
       } 
      }).setHttpRequestInitializer(credential).build(); 
     return service; 
     } 
    } 

但它從來沒有顯示日誌。

回答

0

請在上面的代碼下面的變化得到它的工作

static String authToken; 
HttpRequestInitializer requestInitializer = new HttpRequestInitializer() { 
     public void initialize(HttpRequest request) throws IOException { 
     request.getHeaders().setAuthorization(GoogleHeaders.getGoogleLoginValue(authToken)); 
     } 
    }; 
    Calendar service = new Calendar.Builder(transport, jsonFactory, requestInitializer) 
+0

嗨你的任何機會試試呢?或者如果沒有,您是否找到其他解決方案? – SKen 2012-09-13 20:49:51