2012-02-15 6 views
0

내 사이트에서 javascript API를 사용하여 Google 캘린더에 일정을 추가하고 싶습니다. 이메일을 변경했습니다.하지만 오류가 발생했습니다.Javascript Google 캘린더 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/[email protected]/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'... 

내 코드에 문제가 무엇입니까?

답변

-1

google.gdata 전화가 걸려옵니다. 코드를 읽으면 동적으로 gdata 라이브러리를로드하는 것처럼 보입니다. 로드시 getMyFeed이 호출되는 것 같습니다. 따라서 에 액세스하지 말고 getMyFeed이 실행될 때까지 시도하지 마십시오.

또한 인라인 스크립트를 머리로 이동하고 다른 script 태그보다 위에 배치하는 것이 좋습니다.

+0

코드를 다시 작성할 수 있습니까? –

1

모든 자바 스크립트 코드를 window.onload 이벤트로 마무리하십시오. "google.gdata is undefined"오류에서 탈출하는 데 도움이 될 것 같습니다.

관련 문제