我使用this documentation尝试使用Postman右侧示例测试请求:
let express = require('express');
let app = express();
let {google} = require('googleapis');
const calendar = google.calendar('v3');
const port = 3000;
const key = require('./credentials.json');
const jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
[ 'https://www.googleapis.com/auth/calendar' ],
null
);
jwtClient.authorize(function(err) {
if (!err) {
console.log("Authorization worked!");
}
});
const calendarID = 'XXXXX@resource.calendar.google.com';
app.get('/', function(req, res) {
calendar.events.list({
auth: jwtClient,
calendarId: calendarID,
timeMin: (new Date()).toISOString(),
maxResults: 2,
singleEvents: true,
orderBy: 'startTime'
}, function(err, resp) {
res.json(resp);
});
});
app.listen(port, function(err){
if (!err) {
console.log("XXXXX is running on port", port);
} else {
console.log(JSON.stringify(err));
}
});
也许我没有正确设置参数,但这就是现在的样子。
一个新的GET请求,在URL输入中:$ curl https://subscriptions.zoho.com/api/v1/organizations
-H 'Authorization: Zoho-oauthtoken 1000.41d9f2cfbd1b7a8f9e314b7aff7bc2d1.8fcc9810810a216793f385b9dd6e125f'
-H 'X-com-zoho-subscriptions-organizationid: 10234695'
在此之下,在“标题”标签中,我添加了两个键值对:
https://subscriptions.zoho.com/api/v1/organizations
Authorization:
Zoho-oauthtoken 1000.41d9f2cfbd1b7a8f9e314b7aff7bc2d1.8fcc9810810a216793f385b9dd6e125f
Authorization:
返回的结果:
X-com-zoho-subscriptions-organizationid: 1023469
如果我删除了第二个键值对,它将返回以下JSON:
<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
</body>
</html>
我的方法有什么问题?
答案 0 :(得分:0)
你可以试试吗?
如果您确定api网址,请验证令牌并创建一个新令牌,然后 如下所示将其添加到标题:
HeaderName:授权
HeaderValue: 1000.41d9f2cfbd1b7a8f9e314b7aff7bc2d1.8fcc9810810a216793f385b9dd6e125f
HeaderName: X-com-zoho-subscriptions-organizationid
HeaderValue: 10234695
我尝试了这个,并且得到了,
{
"code": 14,
"message": "Invalid value passed for authtoken."
}
可能是令牌无效。
现在,我尝试使用自己生成的新令牌,现在就可以使用
{
"code": 0,
"message": "success",
"organizations": [],
}
简而言之,您必须先生成一个auth令牌,然后使用正确的标头值访问该url,如上所示。
谢谢:)