gpt4 book ai didi

javascript - JS将字符串转换为rfc822

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:44 24 4
gpt4 key购买 nike

我正在尝试 gmail api。我已经完成了授权。现在我想创建一个草稿。但我收到此错误

{ error: 
I20161220-15:53:43.486(4)? { errors: [Object],
I20161220-15:53:43.487(4)? code: 400,
I20161220-15:53:43.488(4)? message: 'Media type \'application/octet-stream\' is not supported. Valid media types: [message/rfc822]' } } }

Gmail api 需要符合 rfc822 标准的 Base64 字符串。我不确定有什么好方法将字符串转换为 rfc822。我该怎么做?

我在我的应用程序中使用meteor,这是我的代码。

import { Meteor } from 'meteor/meteor'
import { HTTP } from 'meteor/http'

Meteor.startup(() => {
// Meteor.call('createDraft')


Meteor.methods({
'createDraft': function () {
console.log(this.userId)

const user = Meteor.users.findOne(this.userId)
const email = user.services.google.email
console.log(email)
const token = user.services.google.accessToken
const dataObject = {
message: {
raw: CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse('dddd'))
},
headers: {
Authorization: `Bearer ${token}`
}
}
HTTP.post(`https://www.googleapis.com/upload/gmail/v1/users/${email}/drafts`, dataObject, (error, result) => {
if (error) {
console.log('err', error)
}
if (result) {
console.log('res', result)
}
})
}
})
})

最佳答案

对消息进行 Base64 编码,并将所有 + 替换为 -,将所有 / 替换为 _,然后删除尾随 = 以使其 URL 安全:

const rawMessage = btoa(
"From: sender@gmail.com\r\n" +
"To: receiver@gmail.com\r\n" +
"Subject: Subject Text\r\n\r\n" +

"The message text goes here"
).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '')

const dataObject = {
message: {
raw: rawMessage
},
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`
}
};

关于javascript - JS将字符串转换为rfc822,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41242023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com