Can't make a Google Apps Script publish for anonymous users - google-apps-script

I've built a Google Apps Script and when I try to publish it won't show an option to allow anonymous users. There are only two options: "Only myself" and "Anyone within mydomain.com"
We're using Google Apps for Business (or Work is it now?).
How do I make the other options available?

Sharing outside your Google Apps Domain may be disabled in Admin Console.
In your Google Apps Admin Console, go to Google Apps section, then Drive, click Sharing Settings and check that "Users can share files outside this organization" option is selected. Also select appropriate checkboxes below that option as necessary.
If your organization policies prevent sharing outside your domain, you can create and deploy your webapp from your personal gmail account instead.

Related

I've made a google apps script I want to share within my own domain but not publish to the web?

I've made a Google Apps Script project in one sheet that I want to easily access from multiple other Google Sheets, in Google Drive as well as Team Drive.
It would make no sense to publish this script to the Google Web Store since the functionality is based on our own files.
Can I publish it as an addon that's only accessible for users of my domain?
This should be possible by listing it as 'private' in the Developer Dashboard. In the script editor, go to Publish > Deploy as add-on. You have to follow the steps necessary to access the Developer Dashboard and create your listing.
Fill in all the details of your app (name, description, icon etc.) and set its visibility options at the bottom.

Share Apps Script Add-on outside domain

Is there a way to share a Google Apps Scripts add-on (for Google Sheets) with free gmails / outside the domain it was built for ?
In our company everyone has domain emails but sometimes I would like to allow collaborators to use our add-ons.
The way is to publish it. If you don't want to make it public you could make it unlisted or private, shared with a Google Group.

Allowing anonymous access to Google Apps Script web app (Google Apps account)

I have a spreadsheet in my Google Drive that I would like to share through a web app. I want the script to run as me and allow everyone to access the web app.
When this is done in my personal Google account (non Google App account), I get "Anyone, even anonymous" option under "Who has access to the web app" section in the "Publish as a web app" dialog in the Apps Script editor. And everything works fine.
However when I try to do the same thing in my Google Apps account in my organization, I do not get "Anyone, even anonymous" option under "Who has access to the web app" section. Only options that are presented is "Only myself" & "Anyone within XXXXXXX.com"
Anybody have any idea why this is happening? Is there any security option that I can change in my Google Apps domain?
Thanks
Have you checked with your Google Apps Administrator? They might have enforced a policy that one can not share the docs outside the organization.
Here is the documentation on docs sharing policy.
https://support.google.com/a/answer/60781?hl=en
This setting is controlled by the domain administrator via the "Allow users in [domain] to publish files on the web or make them visible to the world as public or unlisted files" options that's under "Settings for Drive and Docs".
Note that after checking that option, you'll have to create a new Script in order to be able to publish it with "Anonymous" access. Existing scripts don't seem to get that option even after the setting has been changed.
Also note the Google issue tracker for this: https://issuetracker.google.com/issues/36764781

Get Email contact list from Google Apps Directory?

Is there any other way I can access to the email contacts under Google Apps Directory in Google Apps Script?
As I had tried the alternative way: UserManager.getAllUsers() in Google Apps Script to access user info but then faced access permission.
The documentation for UserManager says
This class allows administrators to create, update, retrieve and delete users in a Google Apps domain. To use this class you have first to enable the Provisioning API on your domain. For a next-generation control panel, enable the API by logging in to your admin account, and select Domain settings and the User settings tab to select the checkbox enabling the Provisioning API. If your control panel is not Next generation, enable the API by logging in to your admin account, and clicking the Users and groups tab. Then click the Settings subtab, select the checkbox to enable the Provisioning API and save your changes.
Can you confirm that you have the next gen control panel or the API enabled.

Google App Script no longer have "Allow anyone to access" option when deploy to web app

i have a couple of google app script that reads and writes to a google spreadsheet
I used to deploy the script as a service to allow anyone to access, I allow "invoke as me"
Recently, I notice that the interface has changed to "deploy as web app"
However, now there is no option to "allow anyone to access". There is only 2 options to run the script either "only me" or "only anyone in domain"
Has Google changed the policy to not allow anyone to access scripts?
Or have I done anything wrong? Please advise
I really need the scripts to run publicly
urgent. thanks
It is possible. Here's what I did:
Go to the control panel of your Google Apps Account (instructions here)
Select the Settings tab
On the left, under Services, select Drive & Docs
In Sharing Options, select "Users can share documents outside this organization" (I've left the "Warn users..." check box blank)
Also in Sharing Options, I've selected "Private" under Document Visibility but I'm not certain that's necessary. You could try with/without.
Go back to Deploy as webapp in your script project and you should now see "allow anyone to access" - at least I do in mine!
The documentation seems to be quite clear on this matter, you haven't done anything wrong :
After you write the script, you publish it as a service. During the publishing process, you define who has access to the script.
In a Google Apps domain, you can publish the script so that only you have access or so that everyone in the domain has access.
In a Google consumer account, you can publish the script so that only you have access or so that everyone in the world has access.
If you need anyone outside your google apps domain to access your spreadsheet data you could install the script on a consumer account (that has sharing permission on the domain spreadsheet) and publish it from there.