# Google Cloud integrations + OAuth2

**URL:** <https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459>\
**Category:** Ask for Help\
**Created:** [September 17, 2024, 11:25pm UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459 "2024-09-17T23:25:40Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Houy-Sy\_THAO](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/houy-sy_thao/32/79783_2.png) [@Houy-Sy\_THAO](https://community.glideapps.com/u/Houy-Sy_THAO)\
**Post date:** [September 17, 2024, 11:25pm UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/1 "2024-09-17T23:25:40Z")

</div>

Hi all

As part of one of our projects, we need to send an image taken by the user of the Glide app to Gemini.  
The available Google Cloud Vision and Google Cloud integrations that allow the use of GCP services seem incomplete.  
This is not just about extracting text from the image as provided by the Google Cloud Vision integration. Our requirement is to use Gemini’s multimodal mode.  
We have tested using a Cloud Function to encapsulate the call to Gemini, but the authentication part seems complex.

- Do you know if there are future development perspectives for the Google Cloud Vision and Google Cloud integrations to support other tools (Cloud Run calls, Cloud Function calls, calls to Gemini, Google Workflows calls, etc.)?
- Can anybody guide us on using APIs with OAuth2 by utilizing a Google service account in Glide ?  
Thank you.very much to the community !

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [September 18, 2024, 12:24am UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/2 "2024-09-18T00:24:29Z")

</div>

Interesting use case. I wonder if it’s just for extracting info from the image, would you be able to use OpenAI for that? The built-in OpenAI integration allows you to add images I believe.

Google integrations are complex to set up as far as I aware. It used to take me multiple hours.

---

<div class="post-metadata">

**Author:** ![Melanie\_GAULT](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/melanie_gault/32/79917_2.png) [@Melanie\_GAULT](https://community.glideapps.com/u/Melanie_GAULT)\
**Post date:** [September 20, 2024, 11:17pm UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/3 "2024-09-20T23:17:46Z")

</div>

Thanks. I work with Houy-Sy on this case.  
No, openAI is not an option.

To avoid complex Google integration, we used make (former integromat) and it works.  
But we can’t get the image content.

While using the image field, we can get the GCS link, but not the content.  
As it’s also a GCP authentification with JWT or Oauth2, it seems to be endless story 🙂

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [September 20, 2024, 11:45pm UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/4 "2024-09-20T23:45:31Z")

</div>

So it’s a requirement from your side to use Gemini and not OpenAI for this, not because of their lack of functionality, is that correct?

---

<div class="post-metadata">

**Author:** ![Melanie\_GAULT](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/melanie_gault/32/79917_2.png) [@Melanie\_GAULT](https://community.glideapps.com/u/Melanie_GAULT)\
**Post date:** [September 20, 2024, 11:53pm UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/5 "2024-09-20T23:53:26Z")

</div>

yes.  
we would like to integrate glide in several projects with google cloud functions, google workflows, gemini, GCS, and other GCP services.  
This one with multimodal gemini is the first one and will be use as POC to see if we can do what we wants.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [September 20, 2024, 11:56pm UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/6 "2024-09-20T23:56:09Z")

</div>

If you’re using API calls here, would any methods other than OAuth2 be available? Say an authentication key?

---

<div class="post-metadata">

**Author:** ![Melanie\_GAULT](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/melanie_gault/32/79917_2.png) [@Melanie\_GAULT](https://community.glideapps.com/u/Melanie_GAULT)\
**Post date:** [September 21, 2024, 12:01am UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/7 "2024-09-21T00:01:54Z")

</div>

Only Oauth2…  
As we already have Make (integromat) in our scope, so, we manage : glide calls a make webhook with a header param, make catch the call, verify this param and send the payload to GCP service.  
But as I’m really new to Glide, I can’t find any way to send base64 image content instead of the URL to the image.

> **[Convert file to base64 - Noob question!](https://community.make.com/t/convert-file-to-base64-noob-question/13774/6)**
>
> Hi @dgee9663, You can do something like this, a) After Watch Files Module, Put a Download a File Module b) Create a base64 file from the data received in Download Module data:{{1.mimeType}};base64, {{base64(1.data)}}

I think you have to download the file first with a HTTP module, then convert it to base64 like this.

They have a built-in base64 function, but not sure if it works with your case.

---

<div class="post-metadata">

**Author:** ![Melanie\_GAULT](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/melanie_gault/32/79917_2.png) [@Melanie\_GAULT](https://community.glideapps.com/u/Melanie_GAULT)\
**Post date:** [September 21, 2024, 12:07am UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/8 "2024-09-21T00:07:49Z")

</div>

thanks !  
but how to get the content from the URL ?

I have an URL : [https://storage.googleapis.com/glide-prod.appspot.com/uploads-v2/XXXXXX/pub/XXXXX.jpg](https://storage.googleapis.com/glide-prod.appspot.com/uploads-v2/XXXXXX/pub/XXXXX.jpg) in my payload, but this is not a public bucket so I can’t download it.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [September 21, 2024, 12:33am UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/9 "2024-09-21T00:33:37Z")

</div>

Is that just a file that was uploaded to Glide? I would be surprised if that’s the case and Make can not download it.

---

<div class="post-metadata">

**Author:** ![Melanie\_GAULT](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/melanie_gault/32/79917_2.png) [@Melanie\_GAULT](https://community.glideapps.com/u/Melanie_GAULT)\
**Post date:** [September 21, 2024, 12:55am UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/10 "2024-09-21T00:55:17Z")

</div>

with that post [Urgent, please help if possible - #20 by Darren\_Murphy](https://community.glideapps.com/t/urgent-please-help-if-possible/67281/20)

So I will check both approche : http download and octet stream

---

<div class="post-metadata">

**Author:** ![Melanie\_GAULT](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/melanie_gault/32/79917_2.png) [@Melanie\_GAULT](https://community.glideapps.com/u/Melanie_GAULT)\
**Post date:** [September 21, 2024, 1:19am UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/11 "2024-09-21T01:19:07Z")

</div>

With download I manage to have the file.  
But I have a security concerne : this mean the file is public which could be a huge problem.

but for this POC it’s OK.

I manage nearly the whole flow !  
An action (I would like to have it launch directly on image upload, but it seams not possible)

 ![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/4/74c7fabb4320979b78345e8308db0ac6e1f02298.png)

And my make scenario :

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/6/b/6b4e4c33430681507ad4062be83af7aea91bca4f.jpeg)

The edit glide row is working

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/f/3fbdb5cfc4d78ec622c53fda3195b4ed28831a64.png)  
but I don’t show it in my app…

I checked the app ID, table ID. I can’t find who to view the row ID in glide.  
I need more work but I will get it ! 🙂

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [September 21, 2024, 1:39am UTC](https://community.glideapps.com/t/google-cloud-integrations-oauth2/76459/12 "2024-09-21T01:39:04Z")

</div>

> [@Melanie\_GAULT](#):
>
> An action (I would like to have it launch directly on image upload, but it seams not possible)

Yeah unless you have that image as part of a form, then you can do an on-submit action.

You can use a Trigger Webhook action, doesn’t have to be a Call API action. As long as you’re having the image URL and the rowID to edit later, I think it should work.
