2015-11-23 44 views
2

我正在嘗試將數據發佈到Google Web App以自動輸入一些繁瑣的數據。每當我嘗試收到回覆並要求我登錄時,都會部署Web App以供任何人訪問。我可以將數據發佈到Google Web App而無需進行身份驗證嗎?

我可以將數據發送到沒有身份驗證的表單嗎?如果不是,需要什麼類型的認證?

編輯:快速代碼示例我扔在一起:

  WebClient client = new WebClient(); 
      var keyValue = new NameValueCollection(); 
      keyValue.Add("agentName", "John Doe"); 
      keyValue.Add("dayOff", "Sunday"); 
      keyValue.Add("startTime", "8:00 AM"); 
      Uri uri = new Uri("mywebapp url"); 
      byte[] response = client.UploadValues(uri, "POST", keyValue); 
      string result = Encoding.UTF8.GetString(response); 
+0

你有代碼可以分享嗎?該文檔提到支持POST,所以我不明白爲什麼它不應該工作。另外 - Web應用程序是否設置爲您執行?如果不是,那很可能是問題。 –

+0

嗨Jens,我刪除了我用來測試這個的方法。這很簡單,創建一個WebClient,創建一個Uri,傳遞一個NameValueCollection並獲得響應。我回來的回覆是要求我登錄。如果我嘗試在瀏覽器中訪問我的Web App,除非登錄到Google帳戶,否則無法訪問它。這個賬號是snot的事情,只需要任何谷歌賬戶。 Web應用程序被設置爲自己執行。我添加了一個快速代碼示例。 –

+0

您可以發佈您正在使用的Apps腳本代碼(例如'doGet'和/或'doPost'功能的內容)嗎?你在使用哪個網址? (它應該以'/ exec'結尾。) – kiwidrew

回答

0

爲了讓任何人來執行你的腳本,即使它們沒有一個谷歌帳戶登錄,您需要使用以下設置在在「部署爲Web應用程序」對話框

  1. 項目版本:如有疑問,選擇「新建」,以確保您部署的LA測試腳本代碼的副本。
  2. 執行應用程序爲:選擇「我」。這確保了「甚至匿名」選項可用。
  3. 誰有權使用該應用: select 「任何人,甚至匿名」。 (請注意,如果您選擇「任何人」,只有那些已登錄到谷歌帳戶的用戶將能夠執行你的腳本。)

一旦你選擇了這些選項,點擊「更新」按鈕並複製腳本URL。它應該看起來像https://script.google.com/a/macros/<APPS DOMAIN>/s/<SCRIPT KEY>/exec。此時,未經身份驗證的GET或POST腳本的URL應成功。

請注意,腳本的執行次數將會計入您的每日Apps腳本配額。

+1

嗨kiwidrew,謝謝你的回覆。如前所述,我已經部署了該應用程序。但是,我沒有選擇「任何人,甚至匿名」的選項。只有三種選擇。只有我自己,我的域中的任何人或任何人。這是域管理員設置的限制嗎? –

+0

因此,您選擇了「執行應用程序:我」,但仍然沒有「甚至匿名」選項?我想這可能是域管理員有一種方法來禁用此... – kiwidrew

+0

@ douglasg14b啊,我們走了 - 你有域限制。您需要與您的管理員討論這個問題...... –

相關問題