c# - Google 日历:某些 API 端点上的 401 无效凭据
问题描述
我有代码可以从 Google 的日历 API 中检索事件列表。检索到这些事件后,它会根据我拥有的另一个本地列表检查该列表,并使用本地列表中尚未存在的任何事件填充 Google 日历事件。
第一部分运行得很好,它将检索访问令牌,然后在请求中使用该令牌来获取事件列表。下一部分,当它尝试上传事件失败时,会出现 401“Invalid Credentials”错误消息。
我已经检查了控制台 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
}
任何帮助或建议都将非常受欢迎,因为我已经为此苦苦挣扎了一段时间。
解决方案
也许你需要像这样添加你的访问令牌request.AddHeader("Authorization", "Bearer " + access_token);
推荐阅读
- flutter - 无法使可滚动
- regex - 正则表达式和 preg_replace:如何在 URL 中多次匹配相同的模式
- javascript - CSS 选择器的 If 函数 - GTM
- python - Python(MySQL 连接器):获取实时数据并更新变量
- reactjs - 关于使用 Redux 工具包的 `useSelector` 和 `createSelector` 的混淆
- flask - 已部署的 web 应用程序中的烧瓶路由不起作用
- c++ - CTAD 和带有参数包成员的模板构造函数
- php - 数据库错误:include(database-connection.php):无法打开流:没有这样的文件或目录
- javascript - 使用 @material-ui/pickers DatePicker 显示并允许选择月外的日期
- python - 找出两个 numpy 矩阵的相似程度