我试图将我的asp.net(vb.net)应用程序连接到谷歌日历,以便我可以在谷歌日历上发布活动。
到目前为止,我已设法获取访问令牌,并刷新令牌。我计划存储刷新令牌,以便我的应用可以在用户注销后很长时间访问特定的Google日历。
所以,我有我的访问令牌和刷新令牌,现在是什么?我找不到任何可以通过访问令牌连接到谷歌日历api v3的示例 - 所有示例,即使在googles网站上,也涉及使用客户端库来获取访问令牌(我已经已经得到了),并创建了一个没有传递参数的新CalendarService()对象。
是否可以创建CalendarService类并为其提供我已有的访问令牌?
答案 0 :(得分:1)
花了一段时间来弄清楚oauth的工作流程,所以我创建了一个基本概念编码的小项目
项目在这里托管https://code.google.com/p/csharp-googlecalendar-api-v3-oauth2/,它在csharp中,但我确实做到了尽可能简单
您可能希望查看此特定文件https://code.google.com/p/csharp-googlecalendar-api-v3-oauth2/source/browse/CalChecker/simpleEvent.aspx.cs
string accesstoken = "usersaccesstoken";
string client_id = "getclientidfromcloud";
string client_secret = "getclientsecretfromcould";
string useremailaccount = "whosecal@email.com";
var httpWebRequest1 = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/calendar/v3/calendars/" + WebUtility.HtmlEncode(useremailaccount) + "/events");
httpWebRequest1.ContentType = "text/json";
httpWebRequest1.Method = "GET";
httpWebRequest1.Headers["Authorization"] = "Bearer " + accesstoken;
var httpResponse1 = (HttpWebResponse)httpWebRequest1.GetResponse();
using (var streamReader = new StreamReader(httpResponse1.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
所有代码都在创建一个GET WebRequest,注意授权标题。这就是你如何传递访问令牌来调用需要Auth的事件。
希望有所帮助