前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何获取 Gmail 中邮件的摘要

如何获取 Gmail 中邮件的摘要

原创
作者头像
华科云商小徐
发布于 2024-05-10 02:28:41
发布于 2024-05-10 02:28:41
44400
代码可运行
举报
文章被收录于专栏:小徐学爬虫小徐学爬虫
运行总次数:0
代码可运行

要获取 Gmail 中邮件的摘要,我们可以使用 Gmail API。下面是使用 Python 和 Gmail API 获取邮件摘要的一般步骤:

1、问题背景

在使用 Gmail API 时,用户尝试获取邮件摘要,但始终返回空字符串。在使用 JavaScript Node SDK 和 Python SDK 时都遇到了此问题。

2、解决方案

  1. 使用 service.users().messages().get() 方法获取特定邮件的摘要。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const {google} = require('googleapis');const SCOPES = [
  'https://www.googleapis.com/auth/gmail.readonly',
];const OAuth2 = google.auth.OAuth2;// Create credentials object using client_secret.json file
const credentials = JSON.parse(fs.readFileSync('client_secret.json'));
const client_secret = credentials.installed.client_secret;
const client_id = credentials.installed.client_id;
const redirect_url = credentials.installed.redirect_uris[0];
const oauth2Client = new OAuth2(client_id, client_secret, redirect_url);// Generate the url that will be used for the consent dialog.
const authorizeUrl = oauth2Client.generateAuthUrl({
  access_type: 'offline',
  scope: SCOPES
});// Retrieve the access token from the consent dialog
const getAccessToken = (callback) => {
  console.log('Authorize this app by visiting this url: ', authorizeUrl);
  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
  });
  rl.question('Enter the authorization code: ', (code) => {
    rl.close();
    oauth2Client.getToken(code, (err, token) => {
      if (err) {
        console.log('Error retrieving access token', err);
        return;
      }
      callback(token);
    });
  });
};// Use the access token to make an authenticated API call
const retrieveMessages = (token) => {
  oauth2Client.setCredentials(token);
  const service = google.gmail({version: 'v1', auth: oauth2Client});
  service.users.messages.get({
    'userId': 'me',
    'id': msg_id,
    'format': 'raw'
  }, (err, res) => {
    if (err) {
      console.log('Error retrieving messages', err);
      return;
    }
    // Print the message snippet
    console.log('Message snippet: %s', res.data.snippet);
  });
};getAccessToken(retrieveMessages);
  1. 确保请求中包含 format=raw 参数。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from __future__ import print_function
​
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
​
​
def get_message(service, user_id, msg_id, format_='metadata'):
    """Get a Message with given ID.Args:
      service: Authorized Gmail API service instance.
      user_id: User's email address. The special value "me"
      can be used to indicate the authenticated user.
      msg_id: ID of Message to retrieve.
      format: Format to return message, can be 'metadata' or 'full'Returns:
      Message object, or None when Message not found.
    """
    try:
        message = service.users().messages().get(
            userId=user_id, id=msg_id, format=format_).execute()
        print(F'Message snippet: {message["snippet"]}')
        return message
    except HttpError as error:
        print(F'An error occurred: {error}')
        return None
​
​
def main():
    """Shows basic usage of the Gmail API.
​
    Creates a Gmail API client object and retrieves a recent email message.
    """
    creds, _ = google.auth.default()
    # pylint: disable=maybe-no-member
    service = build('gmail', 'v1', credentials=creds)
    get_message(service, 'me', '146fccb21d960498', 'raw')
​
​
if __name__ == '__main__':
    main()

最后需要注意的是,此脚本仅获取了收件箱中的最新邮件的摘要。我们可以根据需要对其进行扩展,以获取更多邮件的信息或者根据特定标签过滤邮件等。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
google支付回调验证(备用)
20150218,挂机的日本服务器出现google支付被刷单现象,虽然目前进行的修补,但是这个问题并没有完全从根源上解决。并且公司以前的GooglePlay支付也有不完善的地方,在SDK端给支付回调发送支付信息后,支付回调程序没有调用Google API进行订单验证。因此Google支付流程需要进行完善。
全栈程序员站长
2022/07/12
3.8K0
google支付回调验证(备用)
深度解读-如何用keycloak管理external auth
简单来说,以google授权为例,一般就是通过用户授权页面登录google账号,再跳转用code换取到相应权限的token,就可以代表用户去发起一些google api的请求。
newbmiao
2023/11/27
9130
深度解读-如何用keycloak管理external auth
聊聊常见的服务(接口)认证授权
头发掉得多了,总有机会接触/调到各种各样的接口,各种面向Api编程实际上已经嵌入到我们的习惯中,没办法现在服务端通信还得是http(s),其他协议还未能成为通用的。
乔达摩@嘿
2020/09/11
1.5K0
聊聊常见的服务(接口)认证授权
配合OAuth2进行单设备登录拦截 顶
原理就在于要在登录时在redis中存储Session,进行操作时要进行Session的比对。
算法之名
2019/08/20
1.3K0
【实践】如何用GO实现OAuth2授权功能
本文讲解了用GO实现OAuth2授权功能的调试方法,具体代码请参考工程文件,原理请参考另外2篇文章《OAuth 2.0 的四种方式》, 《OAuth2介绍与使用》。
辉哥
2019/05/19
4.3K0
grpc-go之超时与重试(三)
go里面一般会使用Context进行超时控制以及参数传递, 其中超时控制可以使用context.WithDeadline()或者context.WithTimeout()实现, 二者实现效果是一致的.
Johns
2022/09/28
3.1K1
腾讯云API网关的OAuth 2.0集成
API网关是腾讯云上流量治理的产品,一般起到承载流量入口的能力。它提供 API 托管服务,能提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。
Yagr Xu
2021/12/02
2.4K0
从0开始构建一个Oauth2Server服务 <2> 访问 OAuth 服务器中的数据
本节中我们将介绍如何在现有的 OAuth 2.0 服务器上访问您的数据。对于此示例,我们将使用 GitHub API 并构建一个简单的应用程序,该应用程序将列出登录用户创建的所有存储库。
用户1418987
2023/10/16
2180
从0开始构建一个Oauth2Server服务 <2> 访问 OAuth 服务器中的数据
Spring Cloud Security配置OAuth2客户端来访问受保护的API
OAuth2客户端需要一些配置来与认证服务器通信并获取访问令牌,可以在application.properties或application.yml中进行配置。以下是示例配置:
堕落飞鸟
2023/04/13
2.3K0
钉钉一键登录(web端)
首先是进入钉钉的访问凭证,也就是咱们的授权页面,这个是钉钉已经集成好的,咱们只需要更改一下配置就好了。
Java king
2023/02/21
2.3K0
聊聊微服务架构中的认证鉴权那些事
应用系统绕不开基础的鉴权,微服务架构推荐使用 HTTP 的方式进行服务间通信,这里推荐一篇介绍 HTTP 认证鉴的文章。
aoho求索
2021/11/25
3.3K0
聊聊微服务架构中的认证鉴权那些事
Akka-CQRS(14)- Http标准安全解决方案:OAuth2-资源使用授权
上一篇讨论了SSL/TLS安全连接,主要是一套在通信层面的数据加密解决方案。但我们更需要一套方案来验证客户端。要把不能通过验证的网络请求过滤掉。
用户1150956
2019/07/08
6140
grafana酷炫图表
1)grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。 2)grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。 3)grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。
张琳兮
2019/03/14
4K0
grafana酷炫图表
使用 MimeKit 和 MailKit 发送邮件
MimeKit 给.NET 社区带来了一流的 MIME 解析器,它能处理复杂的各种Mime, 性能好。而且开箱即用支持 S/MIME 和 PGP。MimeKit 和 MailKit 支持最新的国际化的电子邮件标准,是.NET 中为一个支持完整支持这些标准电子邮件库,最近正式发布了1.0版本。如果你想做所有与的电子邮件相关的事情,看看 MimeKit 和 MailKit。我保证你不会失望,它支持.NET/Mono的所有平台,包括移动电话、平板等。 使用方法很简单和.NET的SmtpClient 差不多,不过比
张善友
2018/01/29
2.2K0
grpc-go之身份验证(二)
在gRPC中,身份验证被抽象为了credentials.PerRPCCredentials接口:
Johns
2022/09/28
1.5K0
Spring OAuth2 授权服务器配置详解
前两篇文章分别体验了Spring Authorization Server的使用和讲解了其各个过滤器的作用。今天来讲讲Spring Authorization Server授权服务器的配置。强烈建议自己手动搭建一次试试,纸上得来终觉浅,深知此事要躬行。提升你的代码量才是提高编程技能的不二法门,这也是本篇教程的意义所在。
码农小胖哥
2021/11/19
2.5K0
从头搭建一个flask鉴权系统之登陆
“ 从今天开始,准备从头开始搭建一个基于flask的鉴权系统,一点一滴,积累于生活”
周萝卜
2019/07/17
2.2K0
从头搭建一个flask鉴权系统之登陆
fastapi集成google auth登录 - plus studio
首先前往Google Cloud Console (并创建一个新项目(如果尚未创建),然后在“API 和服务 > 仪表板”部分中启用“Google+ API”。你会在这样一个界面。
plus sign
2024/02/29
5550
fastapi集成google auth登录 - plus studio
Python快速调用Teambition接口
Teambition是一个简单、高效的项目协作工具,是一款企业协作软件,很多企业用来作为任务跟踪管理和BUG管理工具.
Python碎片公众号
2021/02/26
2.2K0
Python快速调用Teambition接口
Python 自动化指南(繁琐工作自动化)第二版:十八、发送电子邮件和短信
例如,您可能有一个充满客户记录的电子表格,并希望根据每个客户的年龄和位置信息向他们发送不同的套用信函。商业软件可能无法为你做到这一点;幸运的是,您可以编写自己的程序来发送这些电子邮件,从而节省大量复制和粘贴表单电子邮件的时间。
ApacheCN_飞龙
2023/04/04
11.9K0
Python 自动化指南(繁琐工作自动化)第二版:十八、发送电子邮件和短信
相关推荐
google支付回调验证(备用)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验