为什么我在Google Calendar API中收到(401)未经授权的错误

时间:2009-01-25 00:47:37

标签: c# google-calendar-api unauthorized

我一直在使用Google Calendar API,而且我遇到了困难。当我将下面的内容称为删除日历活动时,它会在第一次通过时正常工作,通常是第二次通过。但是,在第2次或第3次我称这种方法时,我得到(401)未经授权的错误。它每次都使用相同的凭据。如果我收到异常,我可以重置抓取中的凭据,它可以正常工作。我宁愿不要这样做。有什么想法吗?

        CalendarService myService = new CalendarService("mycompany-myapp-1");
        myService.setUserCredentials("jo@username.com", "password");


        // set the query for the event
        EventQuery myQuery = new EventQuery(("http://www.google.com/calendar/feeds/jo@username.com/private/full"));
        myQuery.Query = "Cut the grass";
        myQuery.StartTime = DateTime.Now;
        myQuery.EndTime = DateTime.Now.AddDays(1);

        // find the event
        EventFeed myResultsFeed = null;

        try
        {
            // execute the query to find the event
            myResultsFeed = myService.Query(myQuery);                
        }
        catch (Exception ex)
        {
            // this is where i get the unauthorized exception
            // if i reset the credentials here it works fine

            myService.setUserCredentials("jo@username.com", "password"); 
            myResultsFeed = myService.Query(myQuery);
        }

        if (myResultsFeed != null && myResultsFeed.Entries.Count > 0)
        {
            AtomEntry firstMatchEntry = myResultsFeed.Entries[0];
            firstMatchEntry.Delete();
        }

2 个答案:

答案 0 :(得分:0)

我认为需要更多信息。最好的方法是使用fiddler

答案 1 :(得分:0)

您可以通过创建一个webbrowser控件来解决这个问题,该控件在加载时导航到api并且永远不会向用户显示它。只有解决方案我发现100%解决了这个问题。