如何更新用户的Gmail签名
How to update users Gmail signature
我正在使用具有 Google 身份验证的 ASP .Net Core 2。我需要更新电子邮件签名 (gmail)。但我不知道如何获取 Google 凭据(身份验证后)。
我的 url 端口有问题,一直生成另一个端口 - 例如:localhost:4550,另一个 localhost:3568(我无法解锁正确的 url 在 Google 控制台因为那个)。我试过这个:Whosebug。com/questions/31209273/...但是在我的服务器中,当我点击按钮时,不要打开弹出窗口,
services.AddAuthentication().AddGoogle(googleOptions =>
{
googleOptions.ClientId = googleClientId;
googleOptions.ClientSecret = googleClientSecret;
});
我也在尝试这段代码:
UserCredential cred = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = _applicationSettings.GoogleClientId,
ClientSecret = _applicationSettings.GoogleClientSecret
},
scopes,
"me",
CancellationToken.None,
new FileDataStore("Analytics.Auth.Store"));
但我还有其他问题,这段代码不起作用。有人知道我该如何实现这个??谢谢
Google .net 客户端库当前不支持 Asp .Net 核心的身份验证。您正在使用的代码
UserCredential cred = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = _applicationSettings.GoogleClientId,
ClientSecret = _applicationSettings.GoogleClientSecret
},
scopes,
"me",
CancellationToken.None,
new FileDataStore("Analytics.Auth.Store"));
用于验证已安装的应用程序,例如在代码 运行 所在的计算机上打开浏览器 window 的控制台应用程序。对于 Web 应用程序,身份验证需要在客户端计算机上打开浏览器身份验证 window。目前无法使用 .Net 客户端库执行此操作。
"The Google .net client library does not support Asp .net Core currently."
然后,我将 aspcore 身份验证与 Google 服务和一些权限一起使用:
services.AddAuthentication(options =>
{
options.DefaultScheme = IdentityConstants.ApplicationScheme;
})
.AddGoogle("Google", options =>
{
options.AccessType = "offline";
options.ClientId = googleClientId;
options.ClientSecret = googleClientSecret;
options.SaveTokens = true;
options.Scope.Add(GmailService.Scope.MailGoogleCom);
options.Scope.Add(GmailService.Scope.GmailSettingsBasic);
});
在我的控制器中,我正在获取用于执行 REST 和更新签名的令牌:
var user = await _userManager.GetUserAsync(User);
var externalAccessToken = await _userManager.GetAuthenticationTokenAsync(user, "Google", "access_token");
REST 格式:
PUT https://www.googleapis.com/gmail/v1/users/me/settings/sendAs/ + "useremaillogged"
Header授权方"your token"
Json Object
{
"signature":"your signature"
}
我正在使用具有 Google 身份验证的 ASP .Net Core 2。我需要更新电子邮件签名 (gmail)。但我不知道如何获取 Google 凭据(身份验证后)。
我的 url 端口有问题,一直生成另一个端口 - 例如:localhost:4550,另一个 localhost:3568(我无法解锁正确的 url 在 Google 控制台因为那个)。我试过这个:Whosebug。com/questions/31209273/...但是在我的服务器中,当我点击按钮时,不要打开弹出窗口,
services.AddAuthentication().AddGoogle(googleOptions =>
{
googleOptions.ClientId = googleClientId;
googleOptions.ClientSecret = googleClientSecret;
});
我也在尝试这段代码:
UserCredential cred = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = _applicationSettings.GoogleClientId,
ClientSecret = _applicationSettings.GoogleClientSecret
},
scopes,
"me",
CancellationToken.None,
new FileDataStore("Analytics.Auth.Store"));
但我还有其他问题,这段代码不起作用。有人知道我该如何实现这个??谢谢
Google .net 客户端库当前不支持 Asp .Net 核心的身份验证。您正在使用的代码
UserCredential cred = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = _applicationSettings.GoogleClientId,
ClientSecret = _applicationSettings.GoogleClientSecret
},
scopes,
"me",
CancellationToken.None,
new FileDataStore("Analytics.Auth.Store"));
用于验证已安装的应用程序,例如在代码 运行 所在的计算机上打开浏览器 window 的控制台应用程序。对于 Web 应用程序,身份验证需要在客户端计算机上打开浏览器身份验证 window。目前无法使用 .Net 客户端库执行此操作。
"The Google .net client library does not support Asp .net Core currently."
然后,我将 aspcore 身份验证与 Google 服务和一些权限一起使用:
services.AddAuthentication(options =>
{
options.DefaultScheme = IdentityConstants.ApplicationScheme;
})
.AddGoogle("Google", options =>
{
options.AccessType = "offline";
options.ClientId = googleClientId;
options.ClientSecret = googleClientSecret;
options.SaveTokens = true;
options.Scope.Add(GmailService.Scope.MailGoogleCom);
options.Scope.Add(GmailService.Scope.GmailSettingsBasic);
});
在我的控制器中,我正在获取用于执行 REST 和更新签名的令牌:
var user = await _userManager.GetUserAsync(User);
var externalAccessToken = await _userManager.GetAuthenticationTokenAsync(user, "Google", "access_token");
REST 格式:
PUT https://www.googleapis.com/gmail/v1/users/me/settings/sendAs/ + "useremaillogged"
Header授权方"your token"
Json Object
{ "signature":"your signature" }