首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过创建草稿

通过创建草稿
EN

Stack Overflow用户
提问于 2014-08-25 19:43:17
回答 2查看 1.7K关注 0票数 1

我试图为登录用户创建一条草稿消息,但在运行下面的命令时继续获取错误Missing draft message

代码语言:javascript
复制
require 'google/api_client'
client = Google::APIClient.new
client.authorization.client_id = ENV['GOOGLE_CLIENT_ID']
client.authorization.client_secret = ENV['GOOGLE_CLIENT_SECRET']
client.authorization.grant_type = 'refresh_token'
client.authorization.refresh_token = User.last.refresh_token
token = client.authorization.fetch_access_token!
gmail = client.discovered_api('gmail', 'v1')
params = { 'userId' => 'me', 'draft' => { 'message' => {'raw' => 'test email' } } }
# { 'userId' => 'me', 'message' => {'raw' => 'test email' } }
result = client.execute(api_method: gmail.users.drafts.create, parameters: params)

另外,我尝试了对params的注释式组合,但仍然没有运气。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-25 21:21:13

当我第一次尝试这样做时,我也遇到了同样的问题。我找到的解决方案不是将消息信息作为参数的一部分,而是将其传递到:body_object中,如下所示。

代码语言:javascript
复制
@result = client.execute(
  :api_method => gmail.users.drafts.create,
  :parameters => {
    'userId' => "me"      
  },
  :body_object => {
    'message' => {
      'raw' =>  Base64.urlsafe_encode64('Test Email Message')
    }
  }
)
票数 4
EN

Stack Overflow用户

发布于 2014-09-28 10:49:34

raw in message是完整的SMTP消息。

  • 要么在body_object中设置内容
  • 或者在message中设置完整的SMTP消息,包括报头。

例:

代码语言:javascript
复制
params = { 'userId' => 'me', 'draft' => { 'message' => {'raw' => 'From: foo@example.com\nSubject:Ignore\n\ntest email' } } }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25493213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档