C# Google OAuth使用javascript生成的OAuth访问令牌获取刷新令牌
我正在开发一个应用程序,在这个应用程序中,我需要代表用户执行对GoogleAPI的服务器端请求 基本而言,我的应用程序实现了以下功能: 使用请求身份验证和获取访问令牌 这个令牌的问题在于它的寿命很短,而且我无法用javascript-google-api扩展它。 现在,我的问题是拥有那个短期令牌我如何使用服务器端SDK(在我的例子中是c#)或直接WebClient连接来请求一个长期令牌(刷新令牌) 客户端身份验证完成后,我有以下数据:C# Google OAuth使用javascript生成的OAuth访问令牌获取刷新令牌,c#,oauth-2.0,google-calendar-api,google-oauth,C#,Oauth 2.0,Google Calendar Api,Google Oauth,我正在开发一个应用程序,在这个应用程序中,我需要代表用户执行对GoogleAPI的服务器端请求 基本而言,我的应用程序实现了以下功能: 使用请求身份验证和获取访问令牌 这个令牌的问题在于它的寿命很短,而且我无法用javascript-google-api扩展它。 现在,我的问题是拥有那个短期令牌我如何使用服务器端SDK(在我的例子中是c#)或直接WebClient连接来请求一个长期令牌(刷新令牌) 客户端身份验证完成后,我有以下数据: function handleAuthResult(auth
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
//Authentication successful
//authResults.access_token - has a valid token that expires in 60 minutes
//Say token set to this:ya29.AHES6ZRadMF0y*********c8GOC8KYZFkc6q1fCeT_Q
//Now I can send it using ajax to the server handler to try to extend
} else {
$("#google-cal-authorize-button").button("enable");
}
}
所以一旦令牌可用,我就试图在服务器上扩展它,但失败了,我一定是做错了什么
下面的例子来自
使用WebClient
WebClient wc_ = new WebClient();
NameValueCollection prms = new NameValueCollection();
prms["client_id"] = "91884************n4v.apps.googleusercontent.com";
prms["client_secret"] = "cANBL0*********lMK4";
prms["refresh_token"] = "ya29.AHES6ZRadMF0y*********c8GOC8KYZFkc6q1fCeT_Q";
prms["grant_type"] = "refresh_token";
wc_.UploadValuesCompleted += (object sender, UploadValuesCompletedEventArgs e) =>
{
};
wc_.Headers.Add("Content-type", "application/x-www-form-urlencoded");
byte[] response = wc_.UploadValues(new Uri("https://accounts.google.com/o/oauth2/token"), "POST", prms);
此外,我还可以在服务器端访问Google.API Beta v1.5,但找不到如何结合使用这两个lib的示例
因此,如果有人能提供一个关于如何在服务器上扩展客户端生成的短期访问令牌的示例,那就太好了。如果可能的话。您不能“扩展客户端生成的短期访问\u令牌”。oauth不是这样工作的
您可以采取两种方法:-
注意:当前版本是v1.6。我知道当前版本是v1.6,但是它需要http.primitives,我的解决方案中不能包含这些,因此只能使用1.5。是的,这似乎是事实,不幸的是