Google App Scripts curl授权

时间:2013-02-03 10:37:25

标签: bash curl google-apps-script authorization

只是尝试使用谷歌应用程序脚本。在匿名模式下,事情似乎很好。除了任何人都可以像我的代码片段那样调用我的脚本:

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

我使用this manual获取有关如何通过GoogleLogin进行身份验证的提示。问题是我发送身份验证令牌时收到的“401 Unauthorized”和谷歌方面设置的“我(所有者)/仅我自己”选项。 (令牌似乎是正确的。如果我省略密码或输入错误,那么我会收到“Bad auth”)如果我再次设置“任何人,甚至是匿名”,它会起作用,但是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\""

1 个答案:

答案 0 :(得分:0)

您使用ClientLogin

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

这是谷歌错误:

  

重要提示:自4月20日以来,ClientLogin已被正式弃用,   2012年,现在不再可用。对ClientLogin的请求将失败   使用HTTP 404响应。我们建议您迁移到OAuth 2.0   尽快。