Gmail API - 值 '= Get Labels google-api-dotnet-client/1.25.0.0 (gzip)' 的格式无效

Posted

技术标签:

【中文标题】Gmail API - 值 \'= Get Labels google-api-dotnet-client/1.25.0.0 (gzip)\' 的格式无效【英文标题】:Gmail API - The format of value '= Get Labels google-api-dotnet-client/1.25.0.0 (gzip)' is invalidGmail API - 值 '= Get Labels google-api-dotnet-client/1.25.0.0 (gzip)' 的格式无效 【发布时间】:2017-09-17 00:07:46 【问题描述】:

我开始探索 Gmail API。我按照教程显示标签列表(https://developers.google.com/gmail/api/quickstart/dotnet),效果很好。

非常感谢帮助

当我修改程序流程时,这里给了我错误。我无法追踪错误。它给了我Execute() 方法的错误。

错误:value '= Get Labels 的格式 google-api-dotnet-client/1.25.0.0 (gzip)' 无效

这是我的代码。

public static class Labels

    public static void ListLabels ( )
    
        try
        
            var scope = new []  GmailService.Scope.GmailReadonly ;
            var service = Authorization.GetGmailService(scope, "AppName = Get Labels");

            if (service != null)
            
                var requestListLabels = service.Users.Labels.List("me");

                var labelsList = requestListLabels.Execute().Labels;

                Console .WriteLine ( "\n\n---- Labels List ----" );
                if ( labelsList != null && labelsList .Count > 0 )
                
                    foreach ( var label in labelsList )
                    
                        Console .WriteLine ( "0", label .Name );
                    
                
                else
                
                    Console .WriteLine ( "No labels available." );
                
            
            else
            
                Console.WriteLine("Gmail service not available.");
            
        
        catch (Exception ex)
        
            Console.WriteLine(ex.Message);
            throw;
        
    



public class Authorization

    public object GmailAuth2 ( string[] scopes )
    
        try
        
            using ( var stream = new FileStream ( "Secrets/client_secret.json", FileMode .Open, FileAccess .Read ) )
            
                var clientsecrets = GoogleClientSecrets .Load ( stream ) .Secrets;

                var creds = GoogleWebAuthorizationBroker .AuthorizeAsync (
                    clientsecrets,
                    scopes,
                    "user",
                    CancellationToken .None,
                    new FileDataStore(this.GetType().ToString())
                ) .Result;

                return creds;
            
        
        catch ( Exception ex )
        
            return ex .Message;
        
    

    public static GmailService GetGmailService(string[] scopes, string appname)
    
        try
        
            var authproblem = new Authorization().GmailAuth2(scopes);
            if (authproblem is string)
            
                Console.WriteLine(authproblem);
                return null;
            
            var srvc = new GmailService(new BaseClientService.Initializer
            
                HttpClientInitializer = (UserCredential)authproblem,
                ApplicationName = appname
            );
            return srvc;
        
        catch (Exception e)
        
            Console.WriteLine(e);
            return null;
        
    

这里是主函数

class GmailMailBox

    static void Main ( string [ ] args )
    
        Labels.ListLabels();

        Console .WriteLine ( "Press key to exit ..." );
        Console .Read ( );
    

给我这个错误。 error picture

【问题讨论】:

【参考方案1】:

这几乎可以肯定是由于"AppName = Get Labels" 应用程序名称。 更改此项以删除空格和“=”,我怀疑此错误会消失。

【讨论】:

以上是关于Gmail API - 值 '= Get Labels google-api-dotnet-client/1.25.0.0 (gzip)' 的格式无效的主要内容,如果未能解决你的问题,请参考以下文章

使用 Gmail API 在 html 中检索电子邮件/消息正文

Gmail API 批量获得支持?

使用 Gmail API 获取邮件正文

如何使用 Gmail API 发送回复

使用 Powershell 从 GMAIL API 获取消息正文

Gmail NodeJs客户端中的Gmail API userId用例?