Используя API данных YouTube v3 для .NET, как можно получить токен обновления?

Мне нужно иметь возможность использовать токен обновления, чтобы иметь возможность повторно аутентифицировать токен после того, как токен доступа истек. Как это сделать, используя API C # v3? Я посмотрел class UserCredential и class AuthorizationCodeFlow, и ничто не выпрыгивает на меня.

Я использую следующий код для его аутентификации.

var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()). AuthorizeAsync(CancellationToken.None); if (result.Credential != null) { var service = new YouTubeService(new BaseClientService.Initializer { HttpClientInitializer = result.Credential, ApplicationName = "YouTube Upload Tool" }); } 

И это мой class AppFlowMetadata .

 public class AppFlowMetadata : FlowMetadata { private static readonly IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = new ClientSecrets { ClientId = "ID", ClientSecret = "SECRET", }, Scopes = new[] { YouTubeService.Scope.YoutubeUpload }, DataStore = new EFDataStore(-1) // A data store I implemented using Entity Framework 6. }); public override string GetUserId(Controller controller) { return "test"; } public override IAuthorizationCodeFlow Flow { get { return flow; } } } 

Если кто-нибудь может что-нибудь предложить, я был бы очень признателен. Спасибо.

    Хотя это не ответ, так я обошел это. Я должен был создать запрос GET для авторизации (перенаправить пользователя на возвращаемый URL-адрес и настроить действие Controller для получения обратного вызова, указанного в вашей консоли разработчика Google) и запрос PUT для Token (который я затем сохранил с помощью EF6) вручную. Я использовал System.Net.Http.HttpClient чтобы сделать эти запросы, что было довольно просто. См. Эту ссылку для всех подробностей, необходимых мне для этого.

    Это был единственный способ, с помощью которого access_type можно было бы access_type . Если .NET API делает это, мне все же интересно узнать, как это сделать.

    Когда хранятся данные маркера, я теперь использую API для проверки и обновления токена, когда мне это нужно. Я на самом деле сделал это в приложении на стороне сервера, а не в приложении MVC (следовательно, постоянство токена EF).

     UserCredential credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( new ClientSecrets { ClientId = "ID", ClientSecret = "Secret" }, new[] { YouTubeService.Scope.YoutubeUpload }, "12345", CancellationToken.None, new EFDataStore(-1) // My own implementation of IDataStore ); // This bit checks if the token is out of date, // and refreshes the access token using the refresh token. if(credential.Token.IsExpired(SystemClock.Default)) { if (!await credential.RefreshTokenAsync(CancellationToken.None)) { Console.WriteLine("No valid refresh token."); } } var service = new YouTubeService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "MY App" }); 

    Надеюсь, это поможет другим.