只是想玩谷歌应用程序脚本。在匿名模式下,事情看起来很好。除了任何人都可以调用我的脚本,就像片段显示的那样:

curl "https://script.google.com/macros/s/.../exec?ip=\"$myIp\""

我使用this manual来获取如何通过GoogleLogin进行身份验证的提示。问题是我在发送身份验证令牌时收到的“401未授权”和“我(所有者)/仅我自己”选项是在google端设置的。(标记本身似乎是正确的。如果我省略了密码或输入错误,那么我会收到“Bad auth”),如果我再次设置“Anyone,even anonymous”,它会工作,但是auth的内容似乎被忽略了。正确的方法是什么?
#!/bin/bash
gmail=$1
password=$2
myIp=$3
GoogleAuthToken=""
GoogleAuthToken=`curl --silent https://www.google.com/accounts/ClientLogin --data-urlencode Email=$gmail \
--data-urlencode Passwd=$password -d accountType=GOOGLE -d source=YouDontSay -d service=lh2`
echo $GoogleAuthToken
GoogleAuthToken=$(echo "$GoogleAuthToken" | grep 'Auth=' | sed  s/Auth=//)
echo $GoogleAuthToken
curl -L --silent --header "Authorization: GoogleLogin auth=$GoogleAuthToken" "https://script.google.com/macros/s/.../exec?ip=\"$myIp\""

最佳答案

使用ClientLogin

https://www.google.com/accounts/ClientLogin

这是谷歌错误:
重要提示:自4月20日起,ClientLogin已被正式弃用,
2012年,现在不再提供。对ClientLogin的请求将失败
使用HTTP 404响应。我们鼓励您作为
尽快。

09-25 20:55