1

我正在使用谷歌日历 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 apis 的新手。

4

2 回答 2

2

您是从以 file:// 开头的 url 运行它吗?如果这样它不起作用,您需要一个本地 Web 服务器,以便 URL 以http://localhost/之类的开头,请阅读安装一个。如果您已经有一个 Web 服务器,请确保文件的路径/url 不包含空格或其他需要编码的字符 - 我发现这也会导致问题。

于 2011-10-09T02:01:34.207 回答
1

从本地磁盘加载的 javascript 访问日历 API 时,我遇到了同样的问题。将文件发布到 Web 服务器并使用 http 协议访问它们解决了这个问题。我猜API会尝试在下一个参数中附加原始主机名,但是当它重定向时,如果你从本地文件运行它,就不会有任何主机名(显然)。

于 2011-05-01T16:19:37.180 回答