我正在学习如何使用gmail.api上的frisby.js自动化API。 我想创建一个测试,我创建和删除(或发送)草稿消息。
所以我编写了一个创建草稿的测试,我的问题是 - 我可以编写一个代码,至少可以从我的Post调用中获取生成响应的ID吗?
var frisby = require('frisby');
frisby.create('Create Draft Google')
.post('https://www.googleapis.com/gmail/v1/users/me/drafts?access_token=*my-token-here*', {
message: {
raw: "RGFuJ3MgVG9vbHMgYXJlIGNvb2wh",
id: "1547265285486966899"
}
}, { json: true })
.inspectJSON()
.inspectBody()
.expectStatus(200)
.toss();
因此,为了澄清,我想用
编写THIS ^测试的另一部分.after(function(err, res, body){}
步骤:
谢谢!
答案 0 :(得分:1)
创建草稿时,您将在响应中获得新创建的草稿的ID:
请求强>
POST https://www.googleapis.com/gmail/v1/users/me/drafts?access_token={access_token}
{
"message": {
"raw": "RnJ..."
}
}
<强>响应强>
{
"id": "r5019331921817638435",
"message": {
"id": "157948187e41b5bb",
"threadId": "157948187e41b5bb",
"labelIds": [
"DRAFT"
]
}
}
答案 1 :(得分:0)
.afterJSON(function(json){
callback(json.id);
})
我使用了这个功能,但它确实有效。感谢我的朋友帮忙:D
如果有人需要,请在这里进行全面测试: 这就是我获取创建草稿的ID的方法
var frisby = require('frisby');
var new_id = function(frisby, callback)
{
frisby.create('Create Draft Google')
.post('https://www.googleapis.com/gmail/v1/users/me/drafts?access_token=[my_token]', {
message: {
raw: "RGFu...",
}
}, { json: true })
.inspectJSON()
.inspectBody()
.expectStatus(200)
.afterJSON(function(json){
callback(json.id);
})
.toss();
};
module.exports = new_id;
这就是我用它来删除这个草稿
的方法var frisby = require('frisby');
var getid_spec = require("./getid_spec.js");
getid_spec(frisby,function(id){
frisby.create('Delete Google Draft Test')
.delete("https://www.googleapis.com/gmail/v1/users/me/drafts/" +id +"?access_token=[my_token]", {})
.expectStatus(204)
.toss();
})