Javascript谷歌日历api不工作

Javascript谷歌日历api不工作,javascript,google-calendar-api,Javascript,Google Calendar Api,在我的站点中,我想使用javascript api向google calender添加事件。我更改了邮件。但我在fire bug中出错 这是我的代码: <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"> google.load("gdata", "1"); google.setOnLoadCallback(getMyFeed); </scrip

在我的站点中,我想使用javascript api向google calender添加事件。我更改了邮件。但我在fire bug中出错

这是我的代码:

<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi">
 google.load("gdata", "1");
 google.setOnLoadCallback(getMyFeed);
</script>   
</head>
<body>
<script type="text/javascript">
 var myService;
 var feedUrl = "http://www.google.com/calendar/feeds/galtech.staffs@gmail.com/private/full";
 function logMeIn() {
   scope = "http://www.google.com/calendar/feeds/";
   var token = google.accounts.user.login(scope);
 }
 function setupMyService() {
   myService = new google.gdata.calendar.CalendarService('exampleCo-exampleApp-1');
   logMeIn();
 }
 function getMyFeed() {
   setupMyService();

 myService.getEventsFeed(feedUrl, handleMyFeed, handleError);
 }

 function handleMyFeed(myResultsFeedRoot) {
   alert("This feed's title is: " + myResultsFeedRoot.feed.getTitle().getText());
 }

 function handleError(e) {
   alert("There was an error!");
   alert(e.cause ? e.cause.statusText : e.message);
 }

// Create the calendar service object
var calendarService = new google.gdata.calendar.CalendarService('GoogleInc-jsguide-1.0');

// The default "private/full" feed is used to insert event to the
// primary calendar of the authenticated user
var feedUri = 'https://www.google.com/calendar/feeds/default/private/full';

// Create an instance of CalendarEventEntry representing the new event
var entry = new google.gdata.calendar.CalendarEventEntry();

// Set the title of the event
entry.setTitle(google.gdata.Text.create('JS-Client: insert event'));

// Create a When object that will be attached to the event
var when = new google.gdata.When();

// Set the start and end time of the When object
var startTime = google.gdata.DateTime.fromIso8601("2008-02-10T09:00:00.000-08:00");
var endTime = google.gdata.DateTime.fromIso8601("2008-02-10T10:00:00.000-08:00");
when.setStartTime(startTime);
when.setEndTime(endTime);

// Add the When object to the event
entry.addTime(when);

// The callback method that will be called after a successful insertion from insertEntry()
var callback = function(result) {
  PRINT('event created!');
}

// Error handler will be invoked if there is an error from insertEntry()
var handleError = function(error) {
  PRINT(error);
}

// Submit the request using the calendar service object
calendarService.insertEntry(feedUri, entry, callback, handleError, google.gdata.calendar.CalendarEventEntry);
</script>
 <form>
 <input type="button" value="Start" onClick="getMyFeed()" />
 </form>
</body>
</html>

我的代码中有什么问题?

您正在调用
google.gdata
,但它尚未存在。在阅读代码时,看起来您正在动态加载gdata库。看起来是在加载时调用
getMyFeed
。因此,在执行
getMyFeed
之前,不要尝试访问
google.gdata


我还建议将内联脚本移到头部,特别是在另一个
脚本
标记上方。

使用window.onload事件包装所有javascript代码, 我认为这将帮助您摆脱“google.gdata是未定义的”错误

google.gdata is undefined   

...Service = new google.gdata.calendar.CalendarService('exampleCo-exampleApp-1'...