Re: [問題] 請教如何破除create google calendar 괠…

看板java作者 (挺)時間16年前 (2010/01/31 02:47), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/2 (看更多)
處理過圖形驗證 可是現在又遇到 我用"ServiceForbiddenException"尋找後 找到了 http://code.google.com/p/gdata-java-client/issues/detail?id=92 http://groups.google.ad/group/google-calendar-help-dataapi/browse_thread/thread/21d14a9d96918b6 兩篇文章 搞不懂 不知如何解問題 package ServiceForbiddenException; import com.google.gdata.client.authn.oauth.OAuthException; import com.google.gdata.data.DateTime; import com.google.gdata.data.PlainTextConstruct; import com.google.gdata.data.calendar.CalendarEventEntry; import com.google.gdata.data.extensions.When; import com.google.gdata.util.ServiceException; import java.net.MalformedURLException; import java.net.URL; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import com.google.gdata.client.GoogleService.CaptchaRequiredException; import com.google.gdata.client.calendar.CalendarService; import com.google.gdata.util.AuthenticationException; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ServiceForbiddenException { private static String ID = "google 帳號"; private static String PW = "google 密碼"; private static String StartYear = "2010"; private static String StartMonths = "01"; private static String StartDay = "01"; private static String EndYear = "2100"; private static String EndMonths = "01"; private static String EndDay = "01"; private static int numDay = 0; private static String yyy; private static String mmm; private static String ddd; //http://groups.google.ad/group/google-calendar-help-dataapi/browse_thread/thread/21d14a9d96918b6 //http://code.google.com/p/gdata-java-client/issues/detail?id=92 public static void main(String args[]) throws ParseException, MalformedURLException, AuthenticationException, IOException, ServiceException, OAuthException { SimpleDateFormat formatter = new SimpleDateFormat("yyyy" + "-" + "MM" + "-" + "dd"); Date StrartDate = formatter.parse(StartYear + "-" + StartMonths + "-" + StartDay);//開始日期時間 Date EndDate = formatter.parse(EndYear + "-" + EndMonths + "-" + EndDay);//結束日期 CalendarService myService = new CalendarService("exampleCo-exampleApp-1"); // myService.setOAuthCredentials(null, null); Calendar calendar = Calendar.getInstance(); calendar.setTime(StrartDate); long total = (EndDate.getTime() - StrartDate.getTime()) / (1000 * 60 * 60 * 24) + 1; String url = "http://www.google.com/calendar/feeds/" + ID + "/private/full"; URL postUrl = new URL(url); myService.setUserCredentials(ID, PW); // try { while (calendar.getTime().compareTo(EndDate) <= 0) {//每天create google calendar int y = calendar.get(Calendar.YEAR); int m = calendar.get(Calendar.MONTH); int mm = m + 1; int d = calendar.get(Calendar.DATE); if (y < 10) { yyy = String.valueOf(y); yyy = "000" + yyy; } else if (y < 100) { yyy = String.valueOf(y); yyy = "00" + yyy; } else if (y < 1000) { yyy = String.valueOf(y); yyy = "0" + yyy; } else { yyy = String.valueOf(y); } if (mm < 10) { mmm = String.valueOf(mm); mmm = "0" + mmm; } else { mmm = String.valueOf(mm); } if (d < 10) { ddd = String.valueOf(d); ddd = "0" + ddd; } else { ddd = String.valueOf(d); } numDay = numDay + 1; System.out.println("第" + numDay + "天 " + yyy + "-" + mmm + "-" + ddd); //以上要符合 google setStartTime 日期格式限制 //=================================================================================================================== CalendarEventEntry myEntry = new CalendarEventEntry(); myEntry.setTitle(new PlainTextConstruct("第 " + numDay + " 筆 Title 李"));//建立title (create google calendar even) DateTime startTime = DateTime.parseDateTime(yyy + "-" + mmm + "-" + ddd + "T11:00:00"); DateTime endTime = DateTime.parseDateTime(yyy + "-" + mmm + "-" + ddd + "T17:00:00"); When eventTimes = new When(); eventTimes.setStartTime(startTime); eventTimes.setEndTime(endTime); myEntry.addTime(eventTimes); // CalendarEventEntry insertedEntry = myService.insert(postUrl, myEntry); // myService.delete(new URL(insertedEntry.getEditLink().getHref())); CalendarEventEntry fetchedEntry = myService.insert(postUrl,myEntry); fetchedEntry.delete(); System.out.println("OK"); calendar.add(Calendar.DAY_OF_YEAR, 1);//while//日期加一天 //============================================================================= }//while System.out.println("總共 " + total + " 天數"); } catch (CaptchaRequiredException e) { int num = 0; System.out.println("Please visit " + e.getCaptchaUrl()); System.out.print("Answer to the challenge? "); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String answer = in.readLine(); myService.setUserCredentials(ID, PW, e.getCaptchaToken(), answer); //============================================================================== while (calendar.getTime().compareTo(EndDate) <= 0) { num = num + 1; System.out.println("第 " + num + " 筆"); int y = calendar.get(Calendar.YEAR); int m = calendar.get(Calendar.MONTH); int mm = m + 1; int d = calendar.get(Calendar.DATE); if (y < 10) { yyy = String.valueOf(y); yyy = "000" + yyy; } else if (y < 100) { yyy = String.valueOf(y); yyy = "00" + yyy; } else if (y < 1000) { yyy = String.valueOf(y); yyy = "0" + yyy; } else { yyy = String.valueOf(y); } if (mm < 10) { mmm = String.valueOf(mm); mmm = "0" + mmm; } else { mmm = String.valueOf(mm); } if (d < 10) { ddd = String.valueOf(d); ddd = "0" + ddd; } else { ddd = String.valueOf(d); } System.out.println(yyy + "-" + mmm + "-" + ddd); CalendarEventEntry myEntry = new CalendarEventEntry(); myEntry.setTitle(new PlainTextConstruct("第 " + numDay + " 筆 Title 吉 "));//建立title (create google calendar even) DateTime startTime = DateTime.parseDateTime(yyy + "-" + mmm + "-" + ddd + "T12:00:00"); DateTime endTime = DateTime.parseDateTime(yyy + "-" + mmm + "-" + ddd + "T17:00:00"); When eventTimes = new When(); eventTimes.setStartTime(startTime); eventTimes.setEndTime(endTime); myEntry.addTime(eventTimes); // myService.setUserCredentials(ID, PW); CalendarEventEntry insertedEntry = myService.insert(postUrl, myEntry); calendar.add(Calendar.DAY_OF_YEAR, 1);//while//日期加一天 } //============================================================================== System.out.println("02"); } catch (AuthenticationException e) { System.out.println(e.getMessage()); System.out.println("03"); } }//public static void main(String args[]) } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.137.174.219

01/31 10:00, , 1F
請詳細解說你的問題
01/31 10:00, 1F

01/31 13:05, , 2F
知道"ServiceForbiddenException"問題
01/31 13:05, 2F

01/31 13:07, , 3F
查過API卻不知如何解
01/31 13:07, 3F

01/31 17:42, , 4F
你如果連哪邊丟錯誤出來都講不出來的話...
01/31 17:42, 4F
文章代碼(AID): #1BP7xEbb (java)
文章代碼(AID): #1BP7xEbb (java)