2016-07-08 6 views
0

Ich möchte wissen, wie Sie eine Instanz von Google BaseClientService.Initializer erstellen. Ich muss die BaseClientService.Initializer verwenden, um die GmailService Instanz zu erstellen, und dann diese GmailService Instanz verwenden, um eine UsersResource Instanz zu erstellen.So erstellen Sie eine Instanz von Google BaseClientService.Initializer

Google.Apis.Services.BaseClientService.Initializer initializer = new BaseClientService.Initializer(); 
initializer.ApiKey = "MyApiKey"; 
initializer.ApplicationName = "MyProject"; 
initializer.DefaultExponentialBackOffPolicy = Google.Apis.Http.ExponentialBackOffPolicy.None; 
Google.Apis.Gmail.v1.GmailService gmailService = new GmailService(initializer);  
Google.Apis.Gmail.v1.UsersResource usersResource = new UsersResource(gmailService); 
UsersResource.MessagesResource messagesResource = usersResource.Messages; 

Antwort

0

Zuerst gehen Sie auf den Link unten und öffnen Sie eine Anwendung in Ihrem Google-Konto. Sobald Sie den Code ausführen, erhalten Sie eine Ausnahme zum ersten Mal, vorausgesetzt, Sie haben eine Adresse zu gehen und aktivieren Sie die API in Ihrem Google-Konto.

https://console.developers.google.com/apis/dashboard?project=super-pharm-log-notifications

 static string[] Scopes = { GmailService.Scope.GmailCompose, GmailService.Scope.GmailSend, GmailService.Scope.GmailInsert }; 

      static private BaseClientService.Initializer initializeGmailAccountServices() 
      { 
       string appRoot = null; 


        if (System.Web.HttpContext.Current == null) 
        { 
         appRoot = Environment.CurrentDirectory; 
        } 
        else 
        { 
         appRoot = System.Web.HttpContext.Current.Server.MapPath(@"~\"); 
        } 
        string path = Path.Combine(appRoot, DBConstants.GMAIL_CREDENTIALS_PATH); 


        UserCredential credential; 

        using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read)) 
        { 
         ClientSecrets secrets = GoogleClientSecrets.Load(stream).Secrets; 

         var t = GoogleWebAuthorizationBroker.AuthorizeAsync(secrets, Scopes, "user", CancellationToken.None); 

         t.Wait(); 
         credential = t.Result; 
        } 

        return= new BaseClientService.Initializer() 
        { 
         HttpClientInitializer = credential, 
         ApplicationName = "your application name", 
        }; 
      } 

private static string Base64UrlEncode(string input) 
      { 
       var inputBytes = System.Text.Encoding.UTF8.GetBytes(input); 
       // Special "url-safe" base64 encode. 
       return Convert.ToBase64String(inputBytes) 
        .Replace('+', '-') 
        .Replace('/', '_') 
        .Replace("=", ""); 
      }