Sigue obteniendo el error: redirect_uri_mismatch usando youtube api v3

Hola, espero que alguien me pueda ayudar aquí.

Tengo una aplicación web (asp.net) en mi máquina local. Estoy tratando de subir un video a YouTube utilizando este ejemplo https://developers.google.com/youtube/v3/code_samples/dotnet#upload_a_video

He configurado el ID de cliente y el secreto para la aplicación web en la consola de Google cuando bash cargar un video, se abre una pestaña del navegador para seleccionar una de mis cuentas de Google y, una vez que me inscribo, recibo redirect_uri_mismatch.

cookie_policy_enforce=false scope=https://www.googleapis.com/auth/youtube.upload response_type=code access_type=offline redirect_uri=http://localhost:55556/authorize/ pageId=[some page id removed here for security reasons] display=page client_id=[some unique id removed here for security reasons].apps.googleusercontent.com 

una cosa interesante es que redirect_uri=http://localhost:55556/authorize/ es completamente diferente de la configurada en la consola de Google y la de client_secrets.json, cada vez que recibo la página de error, el número de puerto cambia.

Las urls y orígenes de redurect se configuran de la siguiente manera en la consola de Google. Creo que he agregado todas las combinaciones por si acaso:

URI de redireccionamiento autorizado

 http://localhost/ https://localhost/ http://localhost:50169/AddContent.aspx https://localhost:50169/AddContent.aspx http://localhost:50169 

Orígenes de JavaScript autorizados

 http://localhost/ https://localhost/ http://localhost:50169/ https://localhost:50169/ 

No estoy seguro de por qué redirect-uri en la página de error no coincide con ninguno de los URI de redirección autorizados que he especificado en la consola de Google. algunas ideas ?

¿También es posible que todo esté configurado correctamente en la consola de Google y en mi código, pero este error se desencadena por otra cosa como que tal vez me perdí algún ajuste en mi cuenta de you tube? No hice ningún cambio de configuración ya que no creo que deba hacerlo, ¿es correcto?

Ok, creo que la carga directa de video a la cuenta del propietario del sitio web ya no es compatible con YT API v3.0 de acuerdo con esas publicaciones.

¿Puede YouTube Direct Upload a una cuenta común para todos los usuarios?

¿Cómo puedo hacer que el widget de la cámara web de youtube se cargue en una cuenta utilizando API?

Es una pena, creo que tendré que alojar los videos que los usuarios cargan en mis servidores.

Sin embargo, el problema original se solucionó agregando este URI a los URI de redireccionamiento en la consola del desarrollador

http: // localhost / authorize /

Autorización de Google OAuth 2 – Error: redirect_uri_mismatch

Debe buscar en su código donde crea el URI de autorización. Debe pasar uno de los URI de redireccionamiento que registró con la consola de desarrolladores de Google. Supongo que está usando alguna biblioteca OAuth2 que usa el host local: puerto / autorizar como el URI de redirección predeterminado. El puerto cambia porque cada vez que inicia su servidor local, elige un número de puerto diferente. Para solucionarlo, debe especificar un número de puerto al iniciarlo, por ejemplo, 8080. Luego, debe registrar localhost: 8080 / AddContent.aspx en la consola de desarrolladores de Google y pasarlo a la biblioteca que use para crear el URI de autorización.

Lo hice funcionar configurando los URI de Redireccionamiento a exactamente esto:

 http://localhost:50517/signin-google 

Nota: – no funciona con una barra inclinada – el número de puerto es lo que está asignando su estudio visual – configuro Orígenes de JavaScript para:

 http://localhost:50517/ 

Sin embargo, contigo estaría bien si alguien documentara esto en algún lugar …

Experimenté un problema similar al intentar configurar la aplicación de inicio rápido para la API REST de Drive. Seguí recibiendo el error redirect_uri_mismatch y el número de puerto con ese error siguió cambiando. La solución para mí fue cambiar el URI de redirección en la Consola de desarrolladores de Google para que mi aplicación no incluya el número de puerto.

Hay una manera realmente fácil de sortear esto y me di una patada cuando me di cuenta.

Estoy usando las credenciales de la “Aplicación web”. Querrá que el administrador de credenciales esté abierto por cierto.

Ejecute la aplicación de ejemplo DotNet y deje que el navegador se abra (aparece la página “Seleccionar una cuenta”), luego busque en la URL del URI de redireccionamiento generado automáticamente por el código de Google, por ejemplo:

 redirect_uri%3Dhttp://localhost:62041/authorize/ 

Luego, vaya al administrador de credenciales y agregue esta URL a la lista permitida y guárdela. Ahora, seleccione su cuenta de Google y vea qué sucede: la actualización de la API demora unos minutos. Si obtiene la página de error de redireccionamiento, simplemente vuelva a seleccionarla y vuelva a seleccionar su cuenta. Finalmente, funcionará y volverá a Visual Studio.

Una vez que la cuenta ha sido autorizada una vez que se atasca (borra el directorio bin para desempaquetarla), pero esto significa que ahora puedes poner un punto de interrupción en el código y mirar la variable de credenciales para obtener el token de actualización que todos están intentando desesperadamente obtener. que puede persistir conexiones de cuenta.