代码之家  ›  专栏  ›  技术社区  ›  Minka

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

  •  0
  • Minka  · 技术社区  · 7 年前

    我有从谷歌日历API中检索事件列表的代码。在检索这些事件之后,它会将该列表与我拥有的另一个本地列表进行核对,并使用本地列表中尚未出现的任何事件填充Google日历事件。

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

    我已经检查了控制台API中的所有内容,以确保Google Calendar已作为API启用,并且所有内容都已正确设置。我已经检查了API文档,以确保我在API post查询的身份验证请求中使用了正确的范围,从而将事件提交给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 回复  |  直到 7 年前
        1
  •  0
  •   Khaled Sameer    7 年前

    也许你需要像这样添加你的访问令牌 request.AddHeader("Authorization", "Bearer " + access_token);