0

Androidでアプリケーションを開発しています。私のアプリは Google カレンダー API を使用していますが、Google ドライブ API を含めたいので、いくつかのライブラリを変更しました。そして、Calendar Service Builder には非推奨のコード行があります。これは次のとおりです。

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;
        }
    }

しかし、ログは表示されません。

4

1 に答える 1

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)
于 2012-09-04T18:49:43.257 に答える