認証コードを取得してアクセス トークンと交換するコードが動作する C# アプリがインストールされています。リフレッシュトークンを保存しています。ある時点で、それを使用して新しいアクセス トークンを取得する必要があることを知っています。次のメソッドを定期的に呼び出して、ドライブ アカウントと共有されているファイルを監視しているとします。
/// <summary>
/// Retrieve a list of File resources.
/// </summary>
/// <param name="service">Drive API service instance.</param>
/// <returns>List of File resources.</returns>
public static List<File> retrieveAllFiles(DriveService service) {
List<File> result = new List<File>();
FilesResource.ListRequest request = service.Files.List();
request.Q = "sharedWithMe and trashed=false";
do {
try {
FileList files = request.Fetch();
result.AddRange(files.Items);
request.PageToken = files.NextPageToken;
} catch (Exception e) {
Console.WriteLine("An error occurred: " + e.Message);
request.PageToken = null;
}
} while (!String.IsNullOrEmpty(request.PageToken));
return result;
}
}
ある時点で、service.Files.List() の呼び出しが失敗すると想定しています。アクセス トークンの期限切れが原因で失敗したことを確認するにはどうすればよいですか?また、更新トークンを使用するコードは何ですか? 更新トークンを使用するためにここから収集したいくつかのコード (以下) が既にあります。アクセス トークンの有効期限が切れると、このメソッドが呼び出されますか?
private static IAuthorizationState GetAuthorization(NativeApplicationClient arg)
{
// If we already have a RefreshToken, use that
if (!string.IsNullOrEmpty(RefreshToken))
{
state.RefreshToken = RefreshToken;
if (arg.RefreshToken(state)) {
mTextBox.Text = "RF: " + RefreshToken;
return state;
}
}
// authCode is a TextBox on the form
var result = arg.ProcessUserAuthorization(mTextBox.Text, state);
RefreshToken = state.RefreshToken;
return result;
}