2 回答

TA貢獻1860條經驗 獲得超8個贊
您想使用 php 訪問 Web 應用程序。
您想知道腳本運行時沒有顯示任何值的原因。
如果我的理解是正確的,這個答案怎么樣?請認為這只是幾個可能的答案之一。
您的問題原因:
在您的 Web 應用程序中,Execute the app as:
和Who has access to the app:
分別設置為User accessing the web app
和Anyone
。在這種情況下,當您訪問 Web 應用程序時,需要使用您的訪問令牌。因此,在您的腳本中,會發生錯誤。而是curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true)
被使用。這樣,不顯示任何值。刪除時curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true)
,在您的腳本中,重定向頁面將作為 HTML 數據檢索。
為了避免這個問題,下面的修改如何?
模式一:
在您的腳本中,似乎沒有使用訪問令牌。在這種情況下,請將Execute the app as:
和分別設置Who has access to the app:
為Me
和。Anyone, even anonymous
在這種情況下,不需要使用訪問令牌。
為此,請將以下腳本添加到您的腳本中以訪問 Web 應用程序。
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, true);
通過上述流程,您可以使用 php 腳本訪問 Web 應用程序并從 Web 應用程序中檢索值。
模式二:
如果要訪問分別以Execute the app as:
和Who has access to the app:
asUser accessing the web app
和部署的 Web 應用程序Anyone
,則需要使用訪問令牌。
為此,請將以下腳本添加到您的腳本中以訪問 Web 應用程序。
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, true);
$header = ['Authorization: Bearer ###your access token###'];
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $header);
筆記:
在上述情況下,如果您作為 Web Apps 的所有者,在這種情況下讓其他用戶訪問您的 Web Apps,請與用戶共享部署 Web Apps 的 GAS 項目。這樣,用戶可以使用用戶的訪問令牌訪問 Web 應用程序。
筆記:
當您在 Google Apps Script 端修改 Web Apps 的腳本時,請將 Web Apps 重新部署為新版本。這樣,最新的腳本就會反映到 Web 應用程序中。請注意這一點。

TA貢獻2041條經驗 獲得超4個贊
我嘗試在隱身窗口中訪問 Apps 腳本 URL,它會重定向到 Google 登錄提示。
當您使用該選項的User accessing the web app
設置Execute the app as
時,毫無疑問,該腳本將以訪問它的用戶身份運行。因此,使用您當前的設置,用戶需要登錄到 Google 帳戶才能成功執行應用程序。
如果您將Execute the app as
選項切換到,則會為該選項提供Me (<you address>)
一個附加選項 ,。這是啟用對應用程序的真正匿名訪問的唯一方法。Anyone, even anonymous
Who has access to this app
有關更多詳細信息,請參閱權限文檔。
- 2 回答
- 0 關注
- 179 瀏覽
添加回答
舉報