Ruby on Rails。使用Google Client API解析电子邮件

问题描述 投票:0回答:1

我是Ruby的新手,并且对如何在Rails上执行特定任务有疑问。

我有一个清单清单,每个项目都有一个特定的库存ID,该ID通过电子邮件发送到我的个人Gmail帐户。我希望我的Web应用程序侦听来自特定电子邮件帐户的电子邮件。当我的Gmail收到来自该特定帐户的电子邮件时,我希望我的应用程序将其解析为几个字段,并将股票ID插入我的数据库。

例如:假设我的数据库中有一个样式代码为A5U31且大小为10的项目。电子邮件中将显示类似样式代码:A5U31和size:10的商品,库存编号:329193020。我希望我的Rails应用程序在数据库中搜索具有特定样式代码和大小的条目,并在找到条目时将库存ID插入行中。

我正在尝试使用Google-API-Client gem,但由于我仍然是初学者,所以我很努力。到目前为止,我已经完成了此快速入门指南,以通过Rails应用程序对我的Gmail帐户进行身份验证。

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

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

ruby-on-rails google-api
1个回答
0
投票

我知道您发布此消息已经有几个月了,所以您可能已经解决了,但是如果您仍然需要解决方案(或者如果其他人想做类似的事情,我会分享我的想法:) >

从总体上来说,您的计划听起来不错

  1. 确定何时收到新电子邮件(通过轮询或使用推送通知)。
  2. 获取新电子邮件的内容。
  3. 解析电子邮件的内容以提取相关数据。
  4. 使用数据查询和更新数据库。
  5. 基于documentation for the Gmail API,它看起来确实像you should be able to set up push notifications,因此您不必轮询端点即可获取所需的信息。

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

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

(当然,所有这些都假设您出于某些其他原因未特别使用Rails,例如,将该功能添加到现有的Rails应用程序中。

© www.soinside.com 2019 - 2024. All rights reserved.