milan-fabian / slideshow-support

Support and issue tracking for Slideshow software
https://slideshow.digital/
15 stars 1 forks source link

Error when trying to setup file synchronization with Google Drive #34

Closed ulfskogeng closed 1 year ago

ulfskogeng commented 1 year ago

I'm getting "this page isn't working host: 127.0.0.1 Error Code: net::ERR_CONNECTION_REFUSED" when I try to setup Google Drive File synchronization. Is this a know error? Using Puffin Web browser IMG_20230120_144950

milan-fabian commented 1 year ago

@ulfskogeng Can you please specify in which step of the Google Drive File synchronization does this error happen?

ulfskogeng commented 1 year ago

@milan-fabian It's right after I click "Continue" on this screen IMG_20230120_154558

milan-fabian commented 1 year ago

@ulfskogeng Please make sure Slideshow's web interface is running either on port 8080 or 80, other ports are unfortunately not supported for login to Google Drive. If the web interface is running on one of these two ports, please reboot the entire device and try again. If that won't help either, please send a bug report via menu Information - Bug report, it will automatically attach logs, I will check them.

ulfskogeng commented 1 year ago

web interface is running on port 8080. Bug report submitted after reboot. Thank you @milan-fabian !

milan-fabian commented 1 year ago

@ulfskogeng Can you please make sure the entire device is rebooted before trying again? I can see in the logs that the uptime is 6 hours. The best way would be to unplug the Chromecast from power for 10 seconds and plug it in again. There might be something incorrectly initialized, that's why it's best to reboot it.

ulfskogeng commented 1 year ago

@milan-fabian I think the problem is due to the fact that Chrome Web browser is not installed on Google TV. Sideloading is possible of course, but trying to navigate is not possible, and therefore you cannot complete the steps to verify the connection to GDrive.

I have tried various other browsers, but they cannot be used as they are not compliant and that's probably the reason for the error message as reported by me.

Everything is working fine on an Android phone, so I tried to make a backup of the slideshow folder and restore it on the Chromecast, but the file sync. does not work even if all the settings are restored. Is it possible to make a fix for this?

milan-fabian commented 1 year ago

@ulfskogeng Google Chrome browser is preferred when logging in to Google Drive account, but unless you are getting "Error 403: disallowed_useragent" page, using a different browser should be fine.

Based on your description, the error happens at the moment Google Drive is redirecting back to Slideshow app with the access token, but apparently Slideshow app is inaccessible ("ERR_CONNECTION_REFUSED"). This can be cause by either:

Google Drive access token is stored securely, usually in folder "/data/data/sk.mimac.slideshow/app_data/", where it is not accessible to other apps, so it's not transferred when you copy "slideshow" folder, nor it is included in the configuration backup. This is due to Google Drive security policy, the token might be revoked if it is used from multiple devices.

ulfskogeng commented 1 year ago

@milan-fabian Uninstalled your App Deleted the slideshow folder Installed your App again. It starts up on port 8080 even if the port in settings.xml is set to port 80 I have rebooted and unplugged the Chromecast/ Android TV to make sure it's not cached or something like that. For some reason it does not read the port settings from the config file IMG_20230122_123733 IMG_20230122_123801

milan-fabian commented 1 year ago

@ulfskogeng On Chromecast the web interface will be accessible only on port 8080 (or a port higher than 1000, if you set it), this is expected. When the web interface is running on port 8080, there should be no problem with logging to Google Drive.

The reason why the web interface can't run on port 80 on Chromecast is that the device is not rooted and regular applications on non-rooted Android can't bind to a port lower than 1000, due to security restrictions of the Linux-based operating system. You can find more details about this on https://slideshow.digital/2020/05/network-port-numbers-on-android/.

ulfskogeng commented 1 year ago

I finally managed to make it work. I found a browser that did not give me the error message IMG_20230124_084959 Everything is working beautifully. Thank you so much for making this excellent app @milan-fabian

milan-fabian commented 1 year ago

I am glad it works now :)

ulfskogeng commented 1 year ago

@milan-fabian Google Drive synchronization stopped working after upgrading to ver 4.2.2 I have just sent you a bug report. If I try to setup Google Drive File synchronization it will not display the normal Google authentication webpage.

milan-fabian commented 1 year ago

@ulfskogeng Unfortunately, there was a bug in version 4.2.0 which caused saving the Google Drive token in a bad format. This was fixed in Slideshow 4.2.2, but in some cases, manual fix might be needed as well. This can be done by opening Slideshow's web interface - menu Settings - Shell console, entering the command below and clicking on Send.

rm /data/data/sk.mimac.slideshow/app_data/tokens/StoredCredential

After executing this command, you should be able to re-login to your Google Drive account via File synchronization page.

ulfskogeng commented 1 year ago

@milan-fabian your solution worked as advertised. Thx for excellent support!