ewe*_*ein 0 gmail google-api google-api-nodejs-client gmail-api
我正在尝试使用Gmail API的节点库创建一个带有自定义ID的标签.API有一个用于设置自己的id的请求参数,但是当我尝试创建标签时,我得到错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalidArgument",
"message": "Invalid request"
}
],
"code": 400,
"message": "Invalid request"
}
}
Run Code Online (Sandbox Code Playgroud)
当我不给id时,标签创建没有问题.但是出于我的目的,我需要设置标准标签ID.任何人都知道这里发生了什么,或者它只是api的错误/错误?您可以尝试为自己的帐户创建自己的标签,并在此处查看我正在讨论的更多信息:https://developers.google.com/apis-explorer/#p/gmail/v1/gmail.users.labels.create
创建标签的代码:
var service = Google.gmail({version : 'v1', auth : oauth2Client});
service.users.labels.create({
userId : 'user address here',
labelListVisibility : 'labelShow',
messageListVisibility : 'show',
name : 'label name here',
id : 'label id here'
}, function (err) {
if (err) {
throw err;
} else {
callback();
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢!
您说"API有一个用于设置您自己的ID的请求参数",但https://developers.google.com/gmail/api/v1/reference/users/labels/create中的文档未显示任何此类字段users.labels.create
端点的一部分.
如果您查看https://developers.google.com/gmail/api/v1/reference/users/labels,您会看到一个不可变的id字段,但这不可写,因此该值的值由系统而不是你.
该文档users.labels.create
还指示将返回完全填充的Users对象,因此您将能够知道刚刚创建的标签的ID.要使用node.js库执行此操作,请将回调函数设置为具有第二个参数,该参数将包含调用的结果.所以它可能看起来像这样:
var service = Google.gmail({version : 'v1', auth : oauth2Client});
service.users.labels.create({
userId : 'user address here',
labelListVisibility : 'labelShow',
messageListVisibility : 'show',
name : 'label name here'
}, function (err, result) {
if (err) {
throw err;
} else {
console.log( result );
callback( result );
}
});
Run Code Online (Sandbox Code Playgroud)
如评论中所述,您还可以使用users.labels.list
获取此用户的完整标签列表.
归档时间: |
|
查看次数: |
1731 次 |
最近记录: |