0

我正在学习如何在 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();

所以,澄清一下,我想写这个^测试的另一部分

.after(function(err, res, body){}

脚步:

  1. 我创建了一个草稿消息
  2. 我希望我的测试自动获取刚刚创建的草稿的 ID
  3. 所以我可以删除它\发送它

谢谢!

4

2 回答 2

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"
  ]
 }
}

然后,您可以使用此 ID发送删除消息。

于 2016-10-05T11:04:40.600 回答
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();
})
于 2016-10-07T09:26:26.200 回答