Google日历:某些API端点上的401无效凭据

时间:2019-04-11 16:26:30

标签: c# google-calendar-api

我有代码可以从Google的Calendar API检索事件列表。检索到这些事件后,它将根据我拥有的另一个本地列表检查该列表,并使用本地列表中尚未存在的任何内容填充Google日历事件。

第一部分运行完全正常,它将检索访问令牌,然后在请求中使用该令牌来获取事件列表。下一部分,当尝试上载事件时失败,并显示401“无效凭据”错误消息。

我已经检查了控制台API中的所有内容,以确保已将Google日历启用为API,并且在其中正确设置了所有内容。我已经检查了API文档,以确保我肯定在身份验证请求中使用了正确的范围,以将API后查询提交给GCal。

在这一点上,我不确定请求是否有问题,消息传递是否极具误导性,或者问题确实与授权有关,而我只是完全遗漏了其他内容。

request = new RestRequest("/calendars/"+calID+"/events", Method.POST);
request.AddParameter("access_token", access_token);
request.AddJsonBody(import);

IRestResponse<GCalEvent> inner_response = client.Execute<GCalEvent>(request);

在上面的代码中,access_token变量与成功请求检索事件之前几秒钟使用的值相同。 (即应该有效。)

指定的“导入”变量基于以下包含的自定义对象模型:

public class GCalEvent
{
   public string id { get; set; }
   public string status { get; set; }
   public string htmlLink { get; set; }
   public DateTime created { get; set; }
   public DateTime updated { get; set; }
   public string summary { get; set; }
   public string description { get; set; }
   public string start { get; set; } // yyyy-MM-dd
   public string end { get; set; } // yyyy-MM-dd
}

任何帮助或建议都将受到欢迎,因为我已经对此进行了一段时间的讨论。

1 个答案:

答案 0 :(得分:0)

也许您需要像这样request.AddHeader("Authorization", "Bearer " + access_token);

添加访问令牌