Перенаправление API календаря Google не работает в ASP. NET MVC - PullRequest
0 голосов
/ 25 апреля 2020

Когда мое приложение пытается перенаправить после того, как пользователь разрешает ему доступ, я получаю сообщение об ошибке:

Эта страница не работает. Localhost не отправил никаких данных. ERR_EMPTY_RESPONSE

Я возвращаю его в действие контроллера. Но это не работает. Я уже пытался добавить [redirect("/Callback")] выше действия контроллера обратного вызова.

using apigoogle.classes;
using Microsoft.AspNetCore.Mvc;

namespace apigoogle.Controllers
{
    public class HomeController : Controller
    {
        static apiconnection _Api = new apiconnection ();

        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult ButtonAction()
        {
            return Redirect(_Api.GetCodeurl());
        }

        public IActionResult Callback(string code, string scope)
        {
            _Api.GetToken(code);
            return Content(code);
        }
    }
}

----

using Microsoft.AspNetCore.Http.Extensions;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Net.Http;

namespace apigoogle.classes
{
    public class apiconnection 
    {
        string Token;

        public string GetCodeurl()
        {
            QueryBuilder qb = new QueryBuilder();
            qb.Add("access_type", "offline");
            qb.Add("response_type", "code");
            qb.Add("client_id", "23444050254-nqv9ieg76e1d8d3tb6cd93fk11mntkh0.apps.googleusercontent.com");
            qb.Add("scope", "https://www.googleapis.com/auth/calendar.readonly");
            qb.Add("redirect_uri", "http://localhost:5001/Home/Callback");
            string url = "https://accounts.google.com/o/oauth2/v2/auth" + qb.ToQueryString();
            return url;
        }

        public void GetToken(string code)
        {
            if (code != null)
            {
            }
        }

        public List<afspraak> GetEventList()
        {
            List<afspraak> afspraken = new List<afspraak>();

            using (HttpClient client = new HttpClient())
            {
                string response;
                client.DefaultRequestHeaders.Add("Authorization", "Bearer ");
                response = client.GetStringAsync("https://www.googleapis.com/calendar/v3/calendars/primary/events").Result;
                JObject json = JObject.Parse(response);

                foreach (JToken item in json["items"])
                {
                    afspraak a = new afspraak
                    {
                        naam = item["summary"].ToString(),
                        start = item["start"]["dateTime"].ToString(),
                        eind = item["end"]["dateTime"].ToString(),
                        url = item["htmlLink"].ToString()
                    };
                    afspraken.Add(a);
                }
            }
            return afspraken;
        }
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...