如何获取从Gmail API收到的电子邮件内容的屏幕截图?

问题描述

我正在访问gmail api,以获取当前登录用户收到的电子邮件的数据。我为此使用打字稿。 以下是我用来获取用户电子邮件的代码:

import { gmail_v1 as GmailV1,google } from 'googleapis';
import { ITokens } from '../types/types';

const oAuth2Client = new google.auth.OAuth2(
  process.env.CLIENT_ID,process.env.CLIENT_SECRET,'http://localhost:3000/xxxxxxxx/auth/google/xxxxx'
);

async function getEmails(code: string) {
  const { tokens: credentials } = await oAuth2Client.getToken(code);
  const tokens = credentials as ITokens;
  oAuth2Client.setCredentials(tokens);
  const messages = await getMessages('me',tokens);
  if (messages) {
    await getMessagesOverview('me',tokens,messages);
  }
}

async function getMessages(id: string,tokens: ITokens) {
  oAuth2Client.setCredentials(tokens);
  const gmail = google.gmail({ version: 'v1',auth: oAuth2Client });
  const { data } = await gmail.users.messages.list({
    userId: 'me',maxResults: 20,pageToken: '',includeSpamTrash: true,});
  const { messages } = data;
  return messages;
}

async function getMessagesOverview(
  id: string,tokens: ITokens,messages: GmailV1.Schema$Message[]
) {
  const messageIds = messages.map((m) => m.id);
  const { access_token } = tokens;
  // An abstraction for sending multiple requests to gmail api
  const batch = new BatchRequest(access_token);
  const messageDetails = [];
  for (const msgIds of messageIds) {
    try {
      batch.add(msgIds);
      const resp = await batch.send();
      const succeededResp = resp.filter((res: any) => res.id);
      const details = formatMessage(succeededResp);
      // Capture the screenshots here
      // Save it to some cloud image store
      messageDetails.push(details);
    } catch (e) {
      console.warn('email.save.failed',e);
    }
  }
  // fs.writeFileSync('sample.json',JSON.stringify(fileData));
}
function formatMessage(message: string) {
  const formatted = message;
  // .... some format logic
  return formatted;
}

我想知道是否有办法在移动和桌面视图中截取电子邮件的屏幕截图。我知道操纵p是一个选择。

但是据我所知,木偶不是Gmail下的呈现引擎。因此,我不确定如何拍摄桌面和移动视图下gmail中的外观截图。 请为我提供任何可能的解决方案。

先谢谢了。干杯。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...