下面是我使用 google-api-ruby-client 创建消息的代码(几乎)的样子:
service ||= Google::Apis::GmailV1::GmailService.new
message = RMail::Message.new
message.header['To'] = params[:gmail][:to]
message.header['From'] = current_user_google_user_id
message.header['Subject'] = params[:gmail][:subject]
message.header['Subject'] = params[:gmail][:subject]
message.body = params[:gmail][:body]
service.send_user_message(
current_user_google_user_id,
upload_source: StringIO.new(message.to_s),
content_type: 'message/rfc822',
thread_id: params[:gmail][:thread_id]
)
它显然失败了,因为我有thread_id
。如果我删除该行,一切都会正常工作,但我无法将事情限制在线程范围内。我应该如何将线程 ID 传递给 GmailService?
查看 GitHub 上的源代码send_user_message https://github.com/google/google-api-ruby-client/blob/e3b8c800d649da00748d4605d847b342480ecc73/generated/google/apis/gmail_v1/service.rb#L1150表明它不需要thread_id
作为参数。但是,那Message class https://github.com/google/google-api-ruby-client/blob/e3b8c800d649da00748d4605d847b342480ecc73/generated/google/apis/gmail_v1/classes.rb#L838确实有它作为一个属性。
所以也许尝试这个应该有效:
service ||= Google::Apis::GmailV1::GmailService.new
message = RMail::Message.new
message.header['To'] = params[:gmail][:to]
message.header['From'] = current_user_google_user_id
message.header['Subject'] = params[:gmail][:subject]
message.header['Subject'] = params[:gmail][:subject]
message.body = params[:gmail][:body]
message.thread_id = params[:gmail][:thread_id]
service.send_user_message(
current_user_google_user_id,
upload_source: StringIO.new(message.to_s),
content_type: 'message/rfc822'
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)