嗨我正在編寫一個使用GAE Java的連接器工具,它添加,更新,刪除和檢索日曆events.I使用2腿認證相同。我能夠使用雙方認證成功添加新事件,但無法使用相同的更新,刪除或檢索事件。使用GAE Java API無法更新/刪除/檢索日曆事件使用雙腿認證使用GAE Java API
當我嘗試對日曆事件進行更新/刪除/檢索操作時,它會給出以下錯誤。
com.google.gdata.util.AuthenticationException:OK
<HTML>
<HEAD>
<TITLE>Token invalid - Invalid AuthSub token.</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Token invalid - Invalid AuthSub token.</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
相同的代碼工作正常,如果我刪除OAuth的特定代碼,只需使用service.setUserCredentials()方法。
請幫我解決這個問題。請在 的情況下恢復原狀,需要更多相關信息。
在此先感謝。
-Nirzari 下面是代碼片段
//Code for getCalendarEvents
String url = FEED_URL + "?xoauth_requestor_id="
+ "[email protected]";
URL postUrl = new URL(url);
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setScope(Scope);
oauthParameters.setOAuthConsumerKey(ConsumerKey);
oauthParameters.setOAuthConsumerSecret(secret);
CalendarService myService = new CalendarService("getAppointments");
OAuthSigner signer = new OAuthHmacSha1Signer();
myService.setOAuthCredentials(oauthParameters, signer);
CalendarQuery myQuery = new CalendarQuery(postUrl);
CustomParameter customParameter = new CustomParameter("showdeleted",
"true");
myQuery.addCustomParameter(customParameter);
CalendarEventFeed resultFeed = myService.query(myQuery,
CalendarEventFeed.class);
//Code for Update Appointment
String url = FEED_URL + "?xoauth_requestor_id=" +
"[email protected]";
URL postUrl = new URL(url);
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setScope(Scope);
oauthParameters.setOAuthConsumerKey(ConsumerKey);
oauthParameters.setOAuthConsumerSecret(secret);
CalendarService myService = new CalendarService("updateAppointment");
OAuthSigner signer = new OAuthHmacSha1Signer();
myService.setOAuthCredentials(oauthParameters, signer);
CalendarQuery myQuery = new CalendarQuery(postUrl);
myQuery.setExtendedPropertyQuery(new ExtendedPropertyMatch(
"Prop_Name", value));
CalendarEventFeed resultFeed = myService.getFeed(myQuery,
CalendarEventFeed.class);
if (resultFeed != null && resultFeed.getEntries().size() > 0) {
CalendarEventEntry matchEntry = (CalendarEventEntry) resultFeed
.getEntries().get(0);
updateCalendarEntry(matchEntry, description, title, start, end, startTime, endTime, location, priavte, guestList);
matchEntry.update();
非常感謝您的回覆,添加了query.addCustomParameter(新的CustomParameter(「xoauth_requestor_id」,userEmail));只是爲我工作。 – user1024966
我很樂意提供幫助。可惜你不能投票作爲新手:) – lukelazarovic