Authenticating with google drive so that all users can access the files

I have recently succeeded in communicating with a google drive. The problem I am experiencing is that other users cannot succeed. the drive queries return a message about in correct credentials when other users try to interreact with it through the same retool app. The only way is works even for me, is if my browser is signed into my google account. If I open a different browser and login to retool, the google drive queries will not work. I have read many articles and forum post and I seem to be doing what is required to get this working but it isn't working. I am a bit at a loss at what else to try as it is starting to feel like I am actually memorizing the entire circle I have been going around in and can no longer recognize what is a valid thing to try.

Hey @shawncrocker!

For context would you mind posting a screenshot of your resource setup page with sensitive information redacted?

Here is my current setup. I have tried enabling share credentials but it seemed the same outcome.

Thanks for helping @Kabirdas

:thinking: are people being prompted to authenticate that resource? It may be helpful to add an auth verification endpoint to your resource setup:

Here's an example using the Google Calendar API:

If the endpoint returns a non-2xx code for people who aren't authenticated it should prompt them to do so:

Let me know if that helps?

OK. I was on the fence if that was actually what might be needed to enable. The app was running through some auth screen for the other user but it didn't look like the one in your screen shot. I think it was just the retool signing allowing the user to use there google account to signin. I doing some searching but do you happen to know what the url would need to be for google drive? Or where I would find that?

It sounds like that could be the correct auth flow and that there's something else going on here but it still might be worth trying. The endpoint doesn't have to be anything in particular, just one that will return an error code if the user isn't properly authenticated, you can try something like https://www.googleapis.com/drive/v3/about or whatever endpoint you're hitting in your query.

Its working! This is great. I went through the authentication but when I was returned to the app, it asked again to authenticate. I'm thinking the end point I'm using is always retuning an error. I am just using the same end point as one of the google drive queries that are working with the newly authenticated account. Any idea?

Oops! You need to include Bearer OAUTH2_TOKEN as the Authorization header in the verification endpoint request as well :sweat: I've updated the example with the correct configuration.

Hmm. This makes sense but still it is not working. It asks to authenticate again every time I refresh the web browser. I have recreated the endpoint in a query and it runs with success.

Capture

this is the end point I'm using which runs when using the resource
https://www.googleapis.com/drive/v3/files/1g0T5xKQ8EbmIjGhevA2omnLrBZJ8IHYu/listLabels

Oh yikes, that actually looks like a bug. Resources typically can't access values in your app model through the resource configuration screen. Does it work if you hardcode an endpoint instead?

I have tried but the end point string pushes everything over and for some reason the save button gets pushed off the selectable area of the configuration modal

New video

I will try to find a shorter endpoint

:grimacing: that definitely should not be happening either. What version of Retool are you on and do you happen to have any org-level or app-level custom CSS?

In the meantime, you can also try navigating to the resource page to use the editor there:

You can also find it at

your.org.domain/resources

Thanks so much @Kabirdas. That worked. I forgot about the resource page. The app has stopped requesting authentication every time. I'm running the cloud version so I think that means the most recent version? I am not using any custom or org level CSS.

Ok, thanks for that context @shawncrocker, will try to reproduce the behavior and pass it along to our dev team then report back here when there's a fix.