What's the usage for openDynamicLinkAction with example - google-apps-script

I'm working on the Gmail addon with alternative runtime using nodejs. There is an option openDynamicLinkAction and the documentation says
https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1
"An add-on triggers this action when the action needs to open a link. This differs from the openLink above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back."
And nowhere mentions how the response structure should be to execute open link as a popup using openDynamicLinkAction.
Please help me with the proper usage of this option.

Related

Google App Script not working in incognito mode

i've been learning with google app script, and tried to make a web form because of the limitation of google form. I tried making it by following this example, and it works. However when I tried using incognito or other browser without a google account log on to it, it failed, showing this error
"Maaf, terjadi error pada server saat membaca dari penyimpanan. Kode error INTERNAL."
Which is in Indonesian that basically states the server failed to read the file, and there is an internal error. This is the web app script.
Settings for the web app deployment
Also in the spreadsheet linked is set to anyone with link is able to edit. When this is changed to anyone with link is able to view only, causes a log in prompt to appear in incognito mode.
Any help is greatly appreciated. I also found out earlier that this problem occurred previously because of a bug by google, but it has been resolved. So did I do something wrong?
According to the Apps Script Web Apps documentation:
The first is labeled Current web app URL and ends in /exec. This URL is for the published version of your app, based on the last version you saved and deployed.
The second is the link labeled latest code and ends in /dev. This URL can only be accessed by users who have edit access to the script. This instance of the app always runs the most recently saved code — not necessarily a formal version — and is intended for quick testing during development.
Therefore, when sharing the web application, you should be sharing the /exec link.
There is an open bug for this: https://issuetracker.google.com/issues/160665120

The endpoint is not avalible in production mode

I'm learning the basics of Chrome DevTools, and I've got the task where I need to get access to the linked information, but when I click on the link I've got an error:
"this endpoint is not avalible in production mode" page
I've tried to find something using Devtools, but vainly.
I'm a complete newbie, where should I search?
here is the task itself

Cannot re-enable Cloud Functions for Firebase in dialogflow

I am working in a dialogflow agent and I had Cloud Functions for Firebase enabled and handling my my intents previously. I disabled them on this agent because I was unable to enable them on another agent and I wanted to see if it was a permission issue or something differing between agents. Now, once disabling Cloud Functions on the previously working agent I cannot re-enable Cloud Functions on that agent so I am locked out of doing any sort work fulfilled by Cloud Functions.
In the console I am flipping the switch from DISABLED to ENABLED and the UI changes showing that it should be enabled. Like this:
I notice here that there is no Save or Deploy button. Not sure if that is an issue, but when I click on Intents in the side bar and then click back on Fulfillment the screen looks like this again where Cloud Functions are disabled:
The fact that I am unable to enable Cloud Functions is further confirmed by the fact that the last logs I had in Cloud Functions is from a few days ago when I made the mistake of disabling Cloud Functions fulfillment.
I hope I'm missing something simple here, but I can't find anything (yet) in the dialogflow documentation that tells of anything that I'm missing. I'm kind of at a loss since it was working before and now I can't seem to turn it back on.
Any help would be much appreciated. Thanks!
You should navigate to your firebase console, choose the project, click on the left menu on develop > functions, then on the three dots on the right you can delete your function.
You then, go back to your Dialogflow console and select the inline editor toggle, in case it does not work right away, try refreshing the page.
That error message seems related to a Dialogflow's limitation in fulfillment. Once you modify your code outside the Inline Editor, you cannot go back to use it, so you have to use your code editor from now on and deploy your functions using Firebase CLI. You can check all the limitations here.
Unfortunately, as I myself also lost my ability to use the fast dialogflow inline editor,
"If you modify your function outside of inline code editor, you can no longer use the editor to modify your Cloud Function for Firebase. Your function will continue to provide fulfillment for your agent, but if you need to make changes, you will need to do so in the Firebase console."
As of today this is a known limitation of dialogflow (see Dialog Flow Fulfillment Limitations)
To run the cloud function after getting edited from the inline editor, you have to give your firebase function link to webhook.
Enable webhook service there and give the link of your cloud function and it will work as you expected.

Can't Enable firebasedynamiclinks api for project

I am trying to get the api explorer for the function firebasedynamiclinks.getLinkStats
After logging in for Oauth and executing the request I get the following error message.
Firebase Dynamic Links API has not been used in project
before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/firebasedynamiclinks.googleapis.com/overview?project=%ProjectId%
then retry. If you enabled this API recently, wait a few minutes for
the action to propagate to our systems and retry.
Following the link with the provided %ProjectId% from the original error takes me to a page that gives me the following error:
The API "firebasedynamiclinks.googleapis.com" doesn't exist or you
don't have permission to access it
It seems strange that I have the ability to generate dynamic links and do so manually just fine. I don't know which project I need to enable the dynamic links api for as I have enabled it for the Google Scripts project that I am using it in.
How can I get access to manually created dynamic link analytics?

Windows .net Google.Apis hangs on the call to InsertMediaUpload.Upload -- there is no timeout

I am using GoogleApis to upload documents to Google Drive using the InsertMediaUpload class from the FilesResource namespace and the Upload method. It is working well for me with the following exception:
After calling InsertMediaUpload, a browser window appears asking the user to log into their Google (usually Gmail) account. If the user simply closes the browser window instead of clicking on "Accept" or "Cancel" then the current process appears to be hung. I suppose there should a timeout of a minute or two so that if the user opts to not log in the current windows application will not simply hang and stop working indefinitely.
There is no need for sample code here. What should happen when the user simply closes the browser window instead of clicking cancel if they are no longer interested in uploading a document? Crashing (or hanging) the current process should not be a possibility, but that is what occurs. One would hope closing the browser window would have the same effect as clicking the cancel button -- just another way of opting out of an upload to Google Drive, right?
Thanks in advance for any help with this.
You're not supposed to get authentication message from InsertMediaUpload class. You should handle authentication by yourself. Authentication browser window you get is for your development convenience, not for production code. Please take a look at .net quickstart. In this quickstart, you'll see GetAuthorization method which handles authentication. Modify this method on your needs and you'll get what you want.