当我遇到问题时,有人可以帮忙吗,当调用Gmail API设置转发地址时,请求失败的前提条件错误出现了?以下是我正在尝试使用的C#.Net控制台应用程序。我已将域范围的授权委托给服务帐户。
错误:
Google.Apis.Requests.RequestError错误的请求[400]错误[消息[错误的请求]位置[-]原因[failedPrecondition]域[全局]]
我想我没有模拟用户。因此,我添加了用户,现在出现以下错误。
错误:
错误:“ unauthorized_client”,说明:“未授权客户端使用此方法检索访问令牌。”,Uri:“”
namespace GmailForwarder
{
class Program
{
static string ApplicationName = "GmailForwarder";
static void Main(string[] args)
{
ServiceAccountCredential credential;
string serviceAccount = "gmailforwarder@gmailforwarder.iam.gserviceaccount.com";
var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
try
{
// Create credential
credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccount)
{
User = "wtestboonew@chicagobooth.edu",
Scopes = new[] { GmailService.Scope.GmailSettingsSharing }
}.FromCertificate(certificate));
// Create Gmail API service.
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
string user = "wtestboonew@chicagobooth.edu"; // test gmail account
string fwdAddr = "acw5274@gmail.com";
ForwardingAddress fwdAddress = new ForwardingAddress();
fwdAddress.ForwardingEmail = fwdAddr;
var createFwdAddressResult = service.Users.Settings.ForwardingAddresses.Create(fwdAddress,"me").Execute();
}
catch (Exception ex)
{
}
}
}
}
答案 0 :(得分:0)
当我使用https://mail.google.com/和https://www.googleapis.com/auth/gmail.settings.sharing OAuth2范围时,这对我有用
答案 1 :(得分:0)
我也遇到了这个问题(400码)。我遇到两个问题:
1)正如ACW所说,我在所需范围列表中缺少了“ https://mail.google.com/”,在“ https://www.googleapis.com/auth/gmail.settings.sharing”中缺少了appart。
2)我缺少将包裹在引号(“”)中的范围放在管理控制台中(指定服务帐户的范围时)。
希望它对某人有帮助