使用Google日历API接收(401)未经授权

时间:2013-07-16 23:05:00

标签: c# asp.net google-api google-calendar-api

我遇到了Google Calendar API的一些问题。我正在尝试在日历上创建一个偶数,但我在查询日历服务时遇到困难。我正在使用我在codeproject(Guide)上找到的指南,它将您链接到此身份验证指南(Authentication Guide)。我能够通过身份验证指南中的“OAuth 2.0流程”下的第5步,获得访问令牌和刷新令牌,但是当我尝试查询日历服务时,我收到此错误:

“执行请求失败:https://www.google.com/calendar/feeds/default/allcalendars/full”,“远程服务器返回错误:(401)未经授权。”

我不确定我做错了什么,我授权用户并拥有访问令牌。所以我觉得我错过了一些小事,但过去一天我一直在试图解决这个问题。

这是我正在使用的代码:

        Google.GData.Client.GAuthSubRequestFactory authFactory = new Google.GData.Client.GAuthSubRequestFactory("cl", "API Project");
        authFactory.Token = "ya29...";
        authFactory.KeepAlive = true;
        Google.GData.Calendar.CalendarService service = new CalendarService("API Project");
        service.RequestFactory = authFactory;
        Uri postUri = new Uri(AllCalendarFeed);
        Google.GData.Calendar.CalendarQuery CalendarQuery = new Google.GData.Calendar.CalendarQuery();
        CalendarQuery.Uri = postUri;

        //Errors out on this line:
        Google.GData.Calendar.CalendarFeed calFeed = service.Query(CalendarQuery);

        string CalendarID = "";
        if (calFeed != null && calFeed.Entries.Count > 0)
        {
            foreach (CalendarEntry CalEntry in calFeed.Entries)
            {
                //Commented to post the new appointments 
                //on the main calendar instead of cleverfox calendar
                //if (CalEntry.Title.Text.Contains("Cleverfox") == true)
                //{
                //CalendarID = CalEntry.Title.Text;
                CalendarID = CalEntry.EditUri.ToString().Substring(CalEntry.EditUri.ToString().LastIndexOf("/") + 1);
                break;
                //}
            }
        }

非常感谢任何帮助。谢谢。

0 个答案:

没有答案