Ruby on Rails.使用Google客户端API解析电子邮件



我是Ruby的新手,有一个关于如何在Rails上完成特定任务的问题。

我有一个库存清单,每个商品都有一个特定的库存ID,通过电子邮件发送到我的个人Gmail账户。我希望我的网络应用程序能够监听来自特定电子邮件帐户的电子邮件。当我的gmail收到来自该特定帐户的电子邮件时,我希望我的应用程序解析它的几个字段,并将股票ID插入我的数据库。

例如:假设我的数据库有一个样式代码为A5U31、大小为10的项目。邮件中会写一些类似的东西,样式代码为A5U31,尺寸为10,库存ID:329193020。我希望我的Rails应用程序在数据库中搜索具有特定样式代码和大小的条目,当它找到条目时,只需将股票ID插入行中。

我正在尝试使用Google-API-Client宝石,但我很挣扎,因为我还是一个初学者。到目前为止,我已经完成了这个快速入门指南,用我的rails应用程序验证我的gmail帐户。

https://developers.google.com/gmail/api/quickstart/ruby?authuser=2

如果有人能帮我弄清楚如何编写这类代码,以及将其放在我的应用程序(模型、控制器、视图)中的位置,我将不胜感激。谢谢

我知道你发布这篇文章已经几个月了,所以你可能已经制定好了,但如果你仍然需要解决方案(或者如果其他人想做类似的事情),我会分享我的想法:

在高层,听起来你的计划是

  1. 识别新电子邮件何时收到(通过轮询或使用推送通知)
  2. 获取新电子邮件的内容
  3. 分析电子邮件的内容以提取相关数据
  4. 使用数据查询和更新数据库

根据Gmail API的文档,看起来你应该能够设置推送通知,这样你就不必轮询端点来获得你需要的信息。

然而,我从这个列表中得到的最大收获是,它中没有一个项目真正需要Rails,因为您没有为请求公开外部web API。我想您可以利用ActiveRecord创建一个项目模型,并使用它来管理数据库;然而,由于您似乎只需要进行一些基本的SQL查询(每次都是相同的),我不确定引入ActiveRecord是否会增加多少价值。

如果我想自己解决这个问题,我可能会创建一个简单的Ruby程序,该程序(a)使用您提到的gem来处理来自Gmail API的推送通知,(b)使用另一个gem来连接到您正在使用的任何类型的数据库(例如,针对Postgres的pg)并进行必要的查询。

(当然,所有这些都假设您没有因为其他原因专门使用Rails,例如将此功能添加到现有的Rails应用程序中)。

最新更新