麻烦与谷歌日历生成器服务 [英] troubles with google calendar builder service
问题描述
我正在开发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屋!