有没有关于如何使用GMAIL API为c++读取消息的示例?
我有谷歌CPP客户端,并且已经运行了日历示例。想知道是否有类似的Gmail示例。
我不知道样本,也看不到为其生成的API,所以您需要自己做这件事。你自己做并不难,但不幸的是,如果你需要API的全部内容,可能会变得乏味。
您需要使用gmail的REST接口直接与之进行HTTP对话https://developers.google.com/gmail/api/
你可以随心所欲。使用GoogleAPIsforC++库,您可以直接使用HTTP传输层,也可以在客户端服务库的抽象类之上构建。客户端服务库类被设计为代码生成器的目标,但作为一个起点可能仍然是合理的,因为基类已经完成了所有有趣的事情,所以您只需要向它提供特定于GMail API的冗长细节。我会选择哪一个取决于我需要API的广度,以及如果我也使用其他API,代码库中的一致性和通用性可能会发挥作用。
您可以使用您已经熟悉的日历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
这些文件被划分为对日历中不同资源类型的不同操作。只需选择一种方法类型(例如CalendarListResource_ListMethod),并查看其日历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、有效负载和偶尔的头,然后为您正在调用的API的语义解释HTTP响应体。