Google+ API 401 凭据无效
Google+ API 401 Invalid Credentials
我正在尝试使用Google+ API通过javascript的Web应用程序访问Google Drive。 我总是收到 401 无效凭据错误,即使我有一个尚未过期的有效访问令牌(在 https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=MY_ACCESS_TOKEN 确认),我也启用了云端硬盘 API,并且没有撤销对该令牌的访问权限。 此外,我已经仔细检查了,访问令牌肯定是在授权标头中发送的(我通过浏览器的调试器查看了请求)。 根据我的研究,这些是401无效凭据错误的主要原因。 但是,我仍然收到这些错误,无法弄清楚原因。 这是我的文件,我已经删除了client_id和api_key。
Javascript:
var SCOPES = ['https://www.googleapis.com/auth/plus.login','https://www.googleapis.com/auth/drive'];
var CLIENT_ID = 'MY_CLIENT_ID';
var API_KEY = 'MY_API_ID';
function load()
{
console.log("load");
gapi.client.setApiKey(API_KEY);
window.setTimeout(checkAuth,1);
}
function checkAuth() {
console.log('checkAuth');
gapi.auth.authorize({client_id: CLIENT_ID, scope: SCOPES, immediate: false}, handleAuthResult);
}
function handleAuthResult(authResult) {
gapi.client.setApiKey(API_KEY);
if (authResult && !authResult.error)
{
makeRequest();
}
else
{
alert('error');
}
}
function makeRequest()
{
gapi.client.load('drive','v2',function()
{
var request = gapi.client.request({
'path': '/drive/v2/about',
'method': 'GET',
});
debugger;
request.execute(function(response)
{
debugger;
});
});
}
我的HTML只包含相关的javascript文件,并从myScript调用load方法。
.HTML:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<script src="../js/myScript.js"></script>
<script src="https://apis.google.com/js/client.js"></script>
<script src="https://apis.google.com/js/plusone.js?onload=load"></script>
</head>
<body>
</body>
</html>
如果有人能弄清楚为什么我收到 401 错误或如何进一步查找信息,那就太好了。
编辑:我应该如何创建请求? 当我使用
var request = gapi.client.request({
'path': '/drive/v2/about',
'method': 'GET',
});
我可以查看授权标头是否正确。 但是,在我看到的教程中,他们使用:
var request = gapi.client.drive.about.get({});
其中请求在我的浏览器调试器中看起来不同,并且不一定包含正确的授权标头
我记得一些同时提供 API 密钥和访问令牌的问题会导致某些 API 调用出现问题。由于调用经过身份验证的方法时不需要 API 密钥,因此是否可以尝试删除 gapi.client.setApiKey(API_KEY);
调用(代码中有两次,但这无关紧要)以查看此处是否是这种情况?
虽然我 90% 确定 Scarygami 的建议会解决您的问题 - 从检查身份验证中删除 setApiKey - 如果这不是问题的根源,请考虑更多尝试:
- 客户端
- ID/客户端密钥中的空格
- 您的授权来源是否与您在谷歌 API 控制台中设置的内容一致
如果在
- Yelp API,OAuth;无效签名.需要签名基字符串
- Twitter API:更新有效,但过滤器无效
- 我们是否可以访问 UA 应该为 HTML5 表单 API 维护的无效控件列表
- 确定 Google 地图 API 在运行时是否使用了无效密钥
- 谷歌API正在计算无效地址的距离
- Google+ API 401 凭据无效
- YouTube feed API (JSON-P) 返回无效的 JS
- API请求不起作用——“;无效的IP”;
- Facebook API-FB.API()调用有效,但AJAX请求无效
- Google Plus API-密钥无效
- 谷歌地图api v3-IE7-main.js错误-无效参数(javascript)
- "赋值中的左侧无效“;当接收到来自Facebook API的响应时
- 使用Last.fm API时,XMLHttpRequest给出无效状态
- 通过jquery ajax在Web Api中显示无效的ModelState
- 谷歌地图绘图API:属性
- Trello api无效令牌
- 使用Microsoft图形API更新任务,给出400个无效请求的响应
- 上传到cloudary API -无效的文件参数
- 如何检测Worker API中无效URL的错误
- Facebook API错误100 -无效链接