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
            });
        }
Beispiel #2
0
        /// <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);
        }