private void BuildYouTubeService() { UserCredential credential = new UserCredential(new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = new ClientSecrets() { ClientId = this.token.clientID, ClientSecret = this.token.clientSecret }, }), "user", new TokenResponse() { AccessToken = this.token.accessToken, ExpiresInSeconds = this.token.expiresIn, RefreshToken = this.token.refreshToken, }); this.GoogleYouTubeService = new YouTubeService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = this.token.clientID }); this.GoogleYouTubePartnerService = new YouTubePartnerService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = this.token.clientID }); }
/// <summary> /// generate Access token from DB or Call API /// </summary> /// <returns></returns> public static string GetAccessToken() { string str_Access_Token = string.Empty; //get the access token data in order to check the expire date for access token DataSet ds_AccesstokenData = DataAccess.GetAcessTokenData(); if (DateTime.Now > Convert.ToDateTime(ds_AccesstokenData.Tables[0].Rows[0]["Expire_date"].ToString())) { string keyFilePath = string.Concat(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["client_secrets_Path"].ToString()); string jsonContent = System.IO.File.ReadAllText(keyFilePath); PersonalServiceAccountCred cr = JsonConvert.DeserializeObject <PersonalServiceAccountCred>(jsonContent); DateTime Requested_date = new DateTime(); DateTime Expire_date = new DateTime(); try { ServiceAccountCredential xCred = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(cr.client_email) { Scopes = new[] { YouTubePartnerService.Scope.Youtubepartner } }.FromPrivateKey(cr.private_key)); YouTubePartnerService ytX = new YouTubePartnerService(new BaseClientService.Initializer() { HttpClientInitializer = xCred }); Asset _asset = ytX.Assets.Get("A528497684258438").Execute(); str_Access_Token = xCred.Token.AccessToken; Requested_date = xCred.Token.Issued; Expire_date = xCred.Token.Issued.AddSeconds(Convert.ToDouble(xCred.Token.ExpiresInSeconds)); //update access token data in the DB DataAccess.UpdateAccessTokenData(str_Access_Token, Requested_date, Expire_date); } catch (Exception ex) { str_Access_Token = string.Empty; } } else { str_Access_Token = ds_AccesstokenData.Tables[0].Rows[0]["Access_token_value"].ToString(); } return(str_Access_Token); }