为什么Google应用程序引擎OAuth2使用Javascript返回无效凭据

为什么Google应用程序引擎OAuth2使用Javascript返回无效凭据,javascript,html,google-app-engine,web-applications,oauth-2.0,Javascript,Html,Google App Engine,Web Applications,Oauth 2.0,我正在构建一个GoogleAppEngine应用程序并运行以下代码 <!DOCTYPE html> <html manifest="cache.appcache"> <head> <title>Eat Fresh</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="scri

我正在构建一个GoogleAppEngine应用程序并运行以下代码

<!DOCTYPE html>
<html manifest="cache.appcache">
<head>
    <title>Eat Fresh</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <script src="scripts/whitelist.js" type="text/javascript"></script>
    <script src="https://apis.google.com/js/client.js?onload=init"></script>
</head>
<body>
</body>

</html>
这又回来了

Object {code: 401, message: "Invalid Credentials", data: Array[1], error: Object}
我一直在谷歌上搜索,找不到为什么会发生这种情况。上面使用的代码直接取自我的另一个谷歌应用程序引擎项目,它在那里工作得非常完美。另外,如果我还记得的话,我在项目上收到了一条类似的消息,我从中获取了这段代码,并通过更改或上的设置进行了修复


我看了又看,找不到第一次帮助我修复它的网页。我对设置的猜测可能完全不正确,但这是我的直觉

发生这种情况的原因是来自

gapi.auth.authorize({client_id: CLIENT_ID, scope: SCOPES, immediate: true}, userAuthed)
返回时未定义。这是因为该应用程序没有权限授权该应用程序查看google+帐户数据。更改以下内容

immediate: false

将提示用户授予应用程序权限,从而允许授权访问令牌和其余代码正常工作。

Wow,你是一个救生员!我在谷歌文档中再也看不到“立即”选项:
immediate: false