GMail api c ++样本

时间:2015-04-23 10:51:30

标签: gmail-api google-api-cpp-client

是否有关于如何使用GMAIL API读取c ++消息的样本?

我有Google CPP客户端,并且已运行日历示例。想知道是否有类似的Gmail样本。

1 个答案:

答案 0 :(得分:4)

我不知道样本,也没有看到生成的API,所以你需要自己做。要做到这一点并不困难,但不幸的是,如果您需要全面的API,这可能会变得乏味。

您需要使用它的REST接口https://developers.google.com/gmail/api/

直接将HTTP与gmail对话

你可以随心所欲地做到这一点。使用Google API for C ++库,您可以直接使用HTTP传输层,也可以构建在客户端服务库抽象类之上。客户端服务库类被设计为由代码生成器作为目标,但仍然可能是合理的起点,因为基类已经完成了所有有趣的东西,因此您只需要使用特定于GMail API的繁琐细节来提供它。 。我选择哪一个取决于我需要多少API,如果我正在使用其他API,那么代码库中的一致性和泛化可能会发挥作用。

您可以使用您熟悉的Calendar API作为示例。请记住,这是对API的完整报道,您最初不需要这样做,因此可能需要在开始时制作一些简化的快捷方式(例如,实现一个参数支持有限的方法)。

您希望查看以下内容中实现的服务调整:

https://github.com/google/google-api-cpp-client/blob/master/service_apis/calendar/google/calendar_api/calendar_service.h

https://github.com/google/google-api-cpp-client/blob/master/service_apis/calendar/google/calendar_api/calendar_service.cc

这些文件被分区为Calendar中不同资源类型的不同操作。只需选择一种方法类型(例如CalendarListResource_ListMethod),然后查看Calendar REST API(https://developers.google.com/google-apps/calendar/v3/reference/#CalendarList)即可。然后将其用作相应Gmail REST API的类比(我猜https://developers.google.com/gmail/api/v1/reference/users/messages

请注意,您不需要专门化API的数据对象(这是生成的大多数类),如果您最初没有实现整个API,则可以在这些方法对象实现中使用一些快捷方式。但也许可以按照生成代码的模式,直到你感到舒服为止,这样你就不太可能引入破坏基类的不一致性。

最后,“你正在做的一切”是使用REST样式模式发送HTTP消息,并抓取响应。基类已经实现了所有样板启发式和协议/编码,但需要您提供特定的URL,有效负载和偶尔的头,然后解释HTTP响应正文以了解您正在调用的API的语义。