从我的Gmail帐户中搜索bigquery以获取messageid [英] Search bigquery for messageid from my gmail account

查看:105
本文介绍了从我的Gmail帐户中搜索bigquery以获取messageid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从我的电子邮件帐户中的bigquery gmail日志中搜索特定的messageid.

I want to search bigquery gmail logs for a particular messageid from my email account.

function myFunction() {
  // Get the first message in the first thread of your inbox
  var message = GmailApp.getInboxThreads(0, 1)[0].getMessages()[0];
  // Get its ID
  var messageId = message.getId();
  // Now fetch the same message using that ID.
  var messageById = GmailApp.getMessageById(messageId);
  // Should always log true as they should be the same message
  var messageIdRFC2822 = message.getHeader("Message-ID");
  // Get RFC 2822 message ID
  var subject = message.getSubject();
  Logger.log(subject);
  Logger.log(messageIdRFC2822);

  // input RFC2822 message id and subject to query BigQuery
  var projectId = 'gmail-gsuite-logs';
  var request = {
    query: 'SELECT message_info.subject, message_info.rfc2822_message_id, message_info.connection_info.spf_pass, m.name as domain, message_info.connection_info.is_internal FROM `gmail-gsuite-logs.gmail_logs_dataset.daily_20200304`, UNNEST(message_info.connection_info.authenticated_domain) as m WHERE message_info.rfc2822_message_id=messageIdRFC2822 LIMIT 10;',
    useLegacySql: false
  }
  var jobResult = BigQuery.Jobs.query(request, "gmail-gsuite-logs");
  var jobId = jobResult.jobReference.jobId;
  Logger.log(jobId);
}

从上面的代码中可以看到,查询的以下部分出现错误.无论如何有做这项工作.简而言之,我想查询bigquery以获取特定的messageID. "message_info.rfc2822_message_id = messageIdRFC2822"

As you can see from the above code, I get an error for the following part of query. Is there anyway of making this work. In short I want to query bigquery for a specific messageID. "message_info.rfc2822_message_id=messageIdRFC2822"

我得到的错误: GoogleJsonResponseException:调用bigquery.jobs.query的API失败,错误为:无法识别的名称:messageIdRFC2822

Error I get: GoogleJsonResponseException: API call to bigquery.jobs.query failed with error: Unrecognized name: messageIdRFC2822

推荐答案

查询中的WHERE子句应如下所示

WHERE clause in your query should look like below

WHERE message_info.rfc2822_message_id="<messageIdRFC2822>"   

(带有<messageIdRFC2822>)将替换为您在代码中计算出的messageIdRFC2822的实际值

with <messageIdRFC2822> to be substituted with actual value of messageIdRFC2822 that you calculated in your code

这篇关于从我的Gmail帐户中搜索bigquery以获取messageid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆