我使用谷歌日历api将事件导出到谷歌日历,当用户登录我的网络应用程序时,他创建了一个事件并将相同的事件导出到谷歌日历,这是一个基本要求。我已将此代码用于身份验证
<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/jeevan@stalkninja.com.com/private/full";
myService.getEventsFeed(feedUrl, handleMyFeed, handleError);
}
</script>
<img src="google-app-engine1.png" style="postion:absoulute; width:50px"></img>
虽然我没有在这里指定创建单个事件代码,但我不会授权用户访问Google帐户。谷歌服务器给出了一个错误 -
“您请求的页面无法显示。另一个网站请求访问您的Google帐户,但发送了格式错误的请求。请在收到此邮件时联系您尝试使用的网站,以告知错误。详细的错误消息如下:
“下一个”参数不好或缺失。“
有什么问题请帮我解决这个问题。我是google apis的新手。
答案 0 :(得分:2)
你是从一个以file://开头的网址运行的吗?如果是这样,它将无法工作,您需要一个本地Web服务器,以便URL开始类似http://localhost/,阅读安装一个。如果您已有Web服务器,请确保文件的路径/ URL不包含空格或其他需要编码的字符 - 我发现这也会导致问题。
答案 1 :(得分:1)
我从本地磁盘加载的javascript访问Calendar API时遇到了同样的问题。将文件发布到Web服务器并使用http协议访问它们解决了这个问题。我猜测API尝试在下一个参数中附加原始主机名,但是当它重定向时,如果从本地文件运行它,则不会有任何主机名(显然)。