麻烦与谷歌日历生成器服务 [英] troubles with google calendar builder service

查看:128
本文介绍了麻烦与谷歌日历生成器服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发Android上的应用程序。我的应用程序使用谷歌日历的API,现在我想包括谷歌驱动器API,所以我已经改变了萨姆库。而我的日历服务构建具有pcated的code线去$ P $,这样的:

I am developing an application on android. My app uses a Google Calendar Api, now I want to include Google Drive Api, so I have changed somes libs. And my Calendar Service Builder has a deprecated line of code, this:

GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(accesstoken);

我用库的变更前:

Before the change of the libs I used.:

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

但现在,我不使用的code的第一线,这是德precated,我需要类似的东西。

But right now, I don't use the first line of code, it's deprecated, and I need something similar.

这是我的第一个日历生成器服务:

This was my first calendar builder service:

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

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

And now I'm trying that, but it isn't work:

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

但它永远不会显示日志。

But it never show the log.

推荐答案

请在上面code以下变化得到它的工作

Make the following change in the above code to get it working

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)

这篇关于麻烦与谷歌日历生成器服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆