2011-03-02 75 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