我正在使用java并在Google App Engine上部署了一些应用程序,并尝试使用命令行工具appcfg
下载其中一个已部署应用程序的源代码,但没有运气。它无法进行身份验证,我无法找出原因?
这是我正在使用的命令:
appcfg -A mailboxsigma download_app c:\users\rkumar2\desktop\destination
发出命令之后输出:
Oct 27, 2014 10:04:32 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
0% Fetching file list...
Oct 27, 2014 10:04:35 PM com.google.appengine.tools.admin.AbstractServerConnecti
on send1
WARNING: Error posting to URL: https://appengine.google.com/api/files/list?app_i
d=mailboxsigma&
401 Unauthorized
Must authenticate first.
This is try #0
Email: raghvendra1669@gmail.com
Password for raghvendra1669@gmail.com:
Email:
正如您在输出中看到的那样,在我输入我的Gmail凭据,即电子邮件和密码后,它再次开始询问电子邮件,因此我再次执行此操作,并在重复输入凭据时失败。
我检查了我的App Engine控制台,了解已部署应用程序标识符的正确性,发现它是正确的。我在这里缺少什么?
Email: raghvendra1669@gmail.com
Password for raghvendra1669@gmail.com:
Email: raghvendra1669@gmail.com
Password for raghvendra1669@gmail.com:
Error Details:
Email "raghvendra1669@gmail.com" and password do not match.
Unable to fetch file list
答案 0 :(得分:2)
Google禁止通过被视为“安全性较低”的应用进行登录。这包括SDK中的appcfg
。你能做的是enable less secure apps。
或者,您可以使用OAuth2。
答案 1 :(得分:2)
由于安全原因禁用了命令行身份验证,我们可以使用OAuth2
进行身份验证。要从命令行使用相同的内容,我们需要通过在命令OAuth2
中传递参数来指示我们将使用--auth2
进行身份验证。
所以命令看起来像这样:
appcfg -A mailboxsigma --oauth2 download_app c:\users\rkumar2\desktop\destination
发出此命令后,它会在浏览器中打开一个身份验证窗口,当您接受身份验证时,它将生成一个密钥,您需要在命令提示符中输入该密钥并开始下载。
注意:下载应用程序将下载所有.class文件而不是源文件,因此您需要使用合适的反编译器进行反编译。