Javascript 如何使用Gmail设置收件人';s Node.js API
虽然看起来很简单,但我似乎不知道如何使用谷歌的Gmail API设置草稿收件人。表示Javascript 如何使用Gmail设置收件人';s Node.js API,javascript,node.js,gmail-api,Javascript,Node.js,Gmail Api,虽然看起来很简单,但我似乎不知道如何使用谷歌的Gmail API设置草稿收件人。表示users.messages资源对象包含一个payload对象,该对象包含一个headers对象,并且headers对象包含名称-值对 // example from google's gmail API documentation "payload": { "partId": string, "mimeType": string, "filename": string, "headers": [
users.messages资源
对象包含一个payload
对象,该对象包含一个headers
对象,并且headers
对象包含名称-值对
// example from google's gmail API documentation
"payload": {
"partId": string,
"mimeType": string,
"filename": string,
"headers": [
{
"name": string,
"value": string
}
],
"body": users.messages.attachments Resource,
"parts": [
(MessagePart)
]
},
我想您应该在这些标题中设置草稿的“To”部分,因为文档中说
此邮件部分的标题列表。对于表示整个消息负载的顶级消息部分,它将包含标准的RFC2822电子邮件头,例如To、From和Subject
但是,当我提出类似这样的请求时
"payload" : {
"headers" : [
{
"name" : "To",
"value" : "me"
// "me" should direct the draft to myself
}
]
}
let create = (toAddress, subject, content, callback) => {
gmail.users.drafts.create(
{
'userId' : 'me',
'resource' : {
'message' : {
'raw' : base64.encodeURI(
`To:${toAddress}\r\n` + // Who were are sending to
`Subject:${subject}\r\n` + // Subject
`Date:\r\n` + // Removing timestamp
`Message-Id:\r\n` + // Removing message id
`From:\r\n` + // Removing from
`${content}` // Adding our actual message
)
}
}
},
(err, response) => {
// Do stuff with response
callback(err, response);
}
)
}
草稿的结尾部分仍然是空的。任何解决方案或建议?在您的请求中,您有以下内容:
“headers”:[“name”:“To”,“value”:“me”]
“headers”
应该是一个对象数组,但您的数组不包含任何对象
相反,它应该是这样的:
“headers”:[{“name”:“To”,“value”:“me”}]
就像他们的例子:
"payload": {
"partId": string,
"mimeType": string,
"filename": string,
"headers": [
{
"name": "To",
"value": "me"
}
],
"body": users.messages.attachments Resource,
"parts": [
(MessagePart)
]
},
因此,我似乎误解了关于Gmail API的文档。当您向drafts.create发送请求时,您确实需要提供一个
users.messages资源
,但是,并非所有资源都是可写的。只有threadId
、labelid
和raw
是可写对象。事实证明,您根本不应该使用有效负载将设置为
,从
,等等。您应该将它们包括在原始数据中
我的新代码看起来像这样
"payload" : {
"headers" : [
{
"name" : "To",
"value" : "me"
// "me" should direct the draft to myself
}
]
}
let create = (toAddress, subject, content, callback) => {
gmail.users.drafts.create(
{
'userId' : 'me',
'resource' : {
'message' : {
'raw' : base64.encodeURI(
`To:${toAddress}\r\n` + // Who were are sending to
`Subject:${subject}\r\n` + // Subject
`Date:\r\n` + // Removing timestamp
`Message-Id:\r\n` + // Removing message id
`From:\r\n` + // Removing from
`${content}` // Adding our actual message
)
}
}
},
(err, response) => {
// Do stuff with response
callback(err, response);
}
)
}
哎呀,那实际上是个打字错误。我是用我的本地代码这样写的,但当我尝试创建草稿时,结果是一样的。