Javascript Google Календар API не работает - PullRequest
0 голосов
/ 15 февраля 2012

На моем сайте я хочу добавить события в календарь Google, используя javascript api. Я изменил почту на свою. Но я получил ошибку в пожарной ошибке.

Это мой код:

<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 is undefined   

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

В чем проблема в моем коде?

Ответы [ 2 ]

1 голос
/ 10 мая 2013

оберните весь свой код JavaScript событием window.onload, Я думаю, что это поможет вам избежать ошибки "google.gdata is undefined".

0 голосов
/ 15 февраля 2012

Вы звоните на google.gdata до того, как он существует. Читая ваш код, похоже, вы динамически загружаете библиотеку gdata. Похоже, getMyFeed должен вызываться при загрузке. Поэтому не пытайтесь получить доступ к google.gdata до тех пор, пока не выполнится getMyFeed.

Я бы также порекомендовал перенести ваш встроенный скрипт в вашу голову, особенно над другим тегом script.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...