В моем проекте я хочу добавить списки файлов с диска Google в свой проект. Я использую ASP.NET Core.
Я успешно создал проект в Google API Console и внедрил код в ядро ASP.NET. Я получаю сообщение об ошибке Redirect URI Mismatch каждый раз, когда я запускаю программу, даже если я правильно установил URL перенаправления. Я не добился успеха.
Я использую Google drive API V3.
Это ошибка.
Ошибка: redirect_uri_mismatch
URI перенаправления в запросе http://127.0.0.1:63354/authorize/, не совпадает с авторизованным для клиента OAuth.
Итак, я выполнил следующие шаги для своего основного проекта ASP.NET. (Сначала я попробовал в консольном проекте, и я получил успех)
https://dzone.com/articles/authentication-using-google-in-aspnet-core-20
По этой ссылке я могу авторизоваться в Google, но не могу получить список файлов с Google Drive.
Я не получаю никакой ошибки, и файлы считаются равными нулю.
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v3;
using Google.Apis.Drive.v3.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace WebApplication.Controllers
{
public class TestController : BaseController
{
public IActionResult Authenticate()
{
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "",
ClientSecret = ""
},
new[] { DriveService.Scope.Drive },
"user",
CancellationToken.None).Result;
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "WebApplication3",
});
FilesResource.ListRequest listRequest = service.Files.List();
listRequest.PageSize = 10;
listRequest.Fields = "nextPageToken, files(id, name)";
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
.Files;
ViewBag.filecount = files.Count;
if (files != null && files.Count > 0)
{
foreach (var file in files)
{
ViewBag.fileName = file.Name;
}
}
return View("Test");
}
}
}