问题描述
我正在访问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 (将#修改为@)