2011-03-02 34 views
1

我正在使用谷歌日曆API將事件導出到谷歌日曆,當用戶登錄到我的Web應用程序時,他創建了一個事件並將相同的事件導出到谷歌日曆,這是一個基本需求。我已經使用這個代碼驗證「下一個」參數不好或丟失

<body> 
<div id="panel"></div> 
<script type="text/javascript"> 
var myService; 


google.load("gdata", "1"); 
google.setOnLoadCallback(getMyFeed); 

function logMeIn() { 
     scope = "http://www.google.com/calendar/feeds"; 
     var token = google.accounts.user.login(scope); 
    } 

function setupMyService() { 
    myService = new google.gdata.calendar.CalendarService('GoCalender'); 
    logMeIn(); 
} 
function handleMyFeed(myResultsFeedRoot) { 
     alert("This feed's title is: " + myResultsFeedRoot.feed.getTitle().getText()); 
    } 

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

    } 
function getMyFeed() { 
    setupMyService(); 
    var feedUrl = "https://www.google.com/calendar/feeds/[email protected]/private/full"; 
    myService.getEventsFeed(feedUrl, handleMyFeed, handleError); 
} 
</script> 
<img src="google-app-engine1.png" style="postion:absoulute; width:50px"></img> 

雖然我還沒有指定創建單一事件代碼在這裏,我不是auth用戶那裏Google帳戶。谷歌服務器提供了一個錯誤 -

「您請求的頁面無法顯示。另一個網站請求訪問您的Google帳戶,但發送了一個格式錯誤的請求。請與您嘗試訪問的網站聯繫當您收到此消息時,請使用以通知其錯誤。詳細的錯誤消息如下:

「下一個」參數錯誤或丟失。

什麼問題請親切地幫我解決這個問題。我是google apis的新手。

回答

2

你是從一個以file://開頭的url運行的嗎?如果是這樣,它不會工作,你需要一個本地的網絡服務器,所以網址開始像http://localhost/,閱讀安裝之一。如果你已經有一個web服務器,確保你的文件的路徑/ url不包含需要編碼的空格或其他字符 - 我發現這也會導致問題。

1

我剛剛遇到同樣的問題,當從本地磁盤加載的JavaScript訪問日曆API。將文件發佈到Web服務器並使用http協議訪問它們解決了問題。我猜API嘗試在下一個參數中附加源主機名,但是當它重定向時,並且如果從本地文件運行它,則不會有任何主機名(顯然)。

+0

好吧,但我找到了替代庫,這實際上使我的工作更簡單 – 2011-05-01 17:00:45