标签: gmail-api

Gmail API - 使用Javascript解析邮件内容(Base64解码?)

我正在尝试使用Gmail API获取用户的电子邮件,抓取邮件主题和正文,然后将其显示在网页上.我会用它来做其他事情,但这是我遇到困难的部分.我正在使用Angular.js.

这是我的API调用:

function makeApiCall() {
  gapi.client.load('gmail', 'v1', function() {
    var request = gapi.client.gmail.users.messages.list({
      labelIds: ['INBOX']
    });
    request.execute(function(resp) {
      var content = document.getElementById("message-list");
      angular.forEach(resp, function(message) {
        var email = gapi.client.gmail.users.messages.get({'id': message.id});
        // var raw = email.payload.parts;
        // console.log(raw);
        content.innerHTML += JSON.stringify(email) + "<br>";
      })
    });
  });
}
Run Code Online (Sandbox Code Playgroud)

因此gapi.client.gmail.users.messages.list返回我的消息数组及其ID号.那很有效.

要求gapi.client.gmail.users.messages.get({<specific message ID>})输出这个 - {"B":{"method":"gmail.users.messages.get","rpcParams":{},"transport":{"name":"googleapis"}}}.

不确定是什么,但尝试获取消息payload(email.payload.parts),结果undefined.那么,我该如何获取消息内容?

此外,我会假设如果我可以获取消息内容,那么我将不得不对内容进行Base64解码以获得一些英语.对此有任何建议也会有很大帮助.我发现了这个:https://github.com/kvz/phpjs,但是因为我不知道如何获取消息内容以便我可以尝试解码它们,所以不确定是否有php.js在这方面是有帮助的.

javascript base64 angularjs gmail-api

7
推荐指数
2
解决办法
2万
查看次数

使用PHP通过Gmail API获取所有收件箱邮件

如何使用带有PHP的Gmail API获取所有收件箱邮件?我可以获得消息ID,除此之外什么都没有.我需要获取主题,发件人和消息文本.

 $list = $gmail->users_messages->listUsersMessages('me',['maxResults' => 10000, 'q' => 'category:primary']);
    $messageList = $list->getMessages();

    $client->setUseBatch(true);
    $batch = new Google_Http_Batch($client);

    foreach($messageList as $mlist){
        $batch->add($gmail->users_messages->get('me',$mlist->id, ['format' => 'raw']),$mlist->id);
    }

    $batchMessages = $batch->execute();
    $inboxMessage = [];


    foreach($batchMessages as $dMessage){
        $messageId = $dMessage->id;
        $messageSnippet = $dMessage->snippet;

        $dcMessage = base64url_decode($dMessage->getRaw());

        $params['include_bodies'] = true;  
        $params['decode_bodies'] = true;  
        $params['decode_headers'] = true;  

        $mimeDecode = new Mail_mimeDecode($dcMessage);
        $mimeSubject = $mimeDecode->decode($params)->headers['subject'];



        $inboxMessage[] = [
            'messageId' => $messageId,
            'messageSubject' => $messageSubject
        ];
    }
Run Code Online (Sandbox Code Playgroud)

php gmail-api

7
推荐指数
1
解决办法
6571
查看次数

Google REST API - RFC 2822格式化和base64url编码字符串中的消息

我尝试使用- 尝试谷歌REST API - Users.messages:发送.

有一个必要的参数 - raw-

整个电子邮件消息采用RFC 2822格式化和base64url编码的字符串.当提供format = RAW参数时,在messages.get和drafts.get响应中返回.

我检查了RFC 2822格式,似乎它应该在这里显示为示例,然后我用这个编码器将它编码为base64URL并将其粘贴rawtry的字段中,我得到 - Invalid value for ByteString: http://ostermiller.org/calc/encode.html.

你能给我一个正确的RFC 2822 format和它相应的base64URL,它会在上面试试吗?

api rest gmail-api

7
推荐指数
1
解决办法
3199
查看次数

Gmail推送通知错误(每个开发人员仅允许一个用户推送通知客户端)

我试图在我的两个gmail帐户上执行gmail api的监视,并且工作正常。

但是当其他用户尝试这样做时,它显示此错误:

HTTP错误400:“每个开发人员仅允许一个用户推送通知客户端(调用/ stop然后重试)>”

我不知道问题出在发布/订阅客户端配置上还是停下来观察可以解决问题?

有人可以解释“每个开发人员只允许一个用户推送通知客户端”这一说法的意思吗?

gmail gmail-api google-cloud-pubsub

7
推荐指数
1
解决办法
847
查看次数

节点js与gmail api,API返回错误:错误:unauthorized_client

编辑:错误发生在这段代码上:

   var gmail = google.gmail('v1');
      gmail.users.labels.list({
        auth: auth,
        userId: 'me',
      }, function(err, response) {
        if (err) {
          console.log('The API returned an error: ' + err);
          return;
        }
Run Code Online (Sandbox Code Playgroud)

我正在使用带有Node js的gmail api.当我通过他们的快速入门指南时,我不断收到此错误.

https://developers.google.com/gmail/api/quickstart/nodejs

 The API returned an error: Error: unauthorized_client
Run Code Online (Sandbox Code Playgroud)

请记住,我通过电子邮件地址快速入门,一切都很好.完全没有错误.我决定创建一个虚拟电子邮件用于测试目的.我做的唯一更改是step 1-g切换client_secret.json文件以保存新凭据和密钥.我尝试切换回旧文件,但错误仍然存​​在.

在提供的链接页面的底部说明.

Authorization information is stored on the file system, so subsequent executions will not prompt for authorization. Would I have to clear or refresh the information? If so how can I do this?
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我将重新发布我的quickstart.js文件中的所有代码.

var fs …
Run Code Online (Sandbox Code Playgroud)

javascript json oauth node.js gmail-api

7
推荐指数
1
解决办法
3264
查看次数

使用Google Apps脚本删除Gmail电子邮件的附件

使用Google Apps脚本(http://script.google.com),我从文档中了解如何发送,转发,转移到垃圾邮件等,但我找不到如何删除电子邮件的文件附件,即:

  1. 保留文本内容(无论是HTML格式还是纯文本格式都可以)
  2. 保留原始发件人,保留收件人
  3. 保留原始消息日期/小时(重要!)
  4. 删除附件

如果通过API无法实现,是否有办法将消息重新发送给自己,同时保留1,2和3?


注意:GmailAttachment该类看起来很有趣,并允许列出收件人:

var threads = GmailApp.getInboxThreads(0, 10);
 var msgs = GmailApp.getMessagesForThreads(threads);
 for (var i = 0 ; i < msgs.length; i++) {
   for (var j = 0; j < msgs[i].length; j++) {
     var attachments = msgs[i][j].getAttachments();
     for (var k = 0; k < attachments.length; k++) {
       Logger.log('Message "%s" contains the attachment "%s" (%s bytes)',
                  msgs[i][j].getSubject(), attachments[k].getName(), attachments[k].getSize());
     }
   }
 }
Run Code Online (Sandbox Code Playgroud)

但我找不到如何删除附件.

注意:我已经研究过许多其他解决方案,我已经阅读了几乎所有关于此的文章(具有专用Web服务的解决方案,本地客户端如Thunderbird + Attachment提取器插件等),但它们都不是真的很酷.这就是为什么我正在寻找通过Google Apps脚本手动执行此操作的解决方案.

javascript email gmail google-apps-script gmail-api

7
推荐指数
1
解决办法
901
查看次数

使用 Gmail REST API 或 Google Apps 脚本向 Gmail 邮件添加自定义星标

如何使用 Gmail REST 或 Apps API 为邮件添加自定义星标?是否有可用于 Gmail REST API 的备用标签名称?甚至可以从 Google Apps Script API 实现吗?

上下文
Gmail 用户可以更改他们的设置以自定义他们想要使用的星标。这些过去被称为“超级明星”,以引入它们的实验室功能命名。它在工作时继续出现,例如资产 URL:...superstars/star_lit_green_check3.png

自定义星星

 

Gmail REST API
Gmail REST API 不提供设置自定义星标的端点。您可以通过使用User.messages.modify端点添加或删除STARRED标签来加星标或取消星标。似乎没有任何文件表明还有哪些其他标签可用于全套星星。

使用 Gmail REST API 添加 STARRED 标签的结果

由于文档没有提供如何设置自定义星标的线索,因此使用 Gmail 检查网络请求为我们提供了线索。

检查网络请求显示超级明星标签表单值

“sslbl”遵循前缀所在的模式^ss_,类型s用于星形或c自定义类型,以及颜色的第一个字母。通过它们都给我们列出了:

星级:^ss_sy, ^ss_so, ^ss_sr, ^ss_sp, ^ss_sb, ^ss_sg
定制:^ss_cr, ^ss_co, ^ss_cy, ^ss_cg, ^ss_cb, ^ss_cp

稍后进行一些研究,您最终会得到:

不幸的是,REST API 无法识别这些内部标签。测试另一个内部 -^前缀标签也失败,表明您不能在这里使用这些。请注意CATEGORY_FORUMS上面屏幕截图中的标签是如何应用于消息的。相应的^smartlabel_group标签失败。

无法识别内部标签

~~

编辑:根据@TarunLalwani 的建议,我尝试User.messages.modify使用 URL …

gmail google-apps-script gmail-api

7
推荐指数
0
解决办法
819
查看次数

使用 Gmail API 发送的邮件在发送到 Gmail 地址时被标记为可疑

通过 Gmail API 发送到 Gmail 地址的邮件在 Gmail 中被标记为“小心处理此邮件。它包含通常用于窃取个人信息的内容。”

该消息基本上只是说测试。并且通过 Gmail SMTP 发送的相同内容邮件不会被标记为该警告。

Gmail 将通过 Gmail 拥有的 API 传入的邮件标记为可疑邮件,这似乎真的很奇怪,但是当它们通过 SMTP 传来时,它不会发出警告。

gmail-api

7
推荐指数
1
解决办法
678
查看次数

如何获得gmail用户的头像?

我正在使用Gmail API在React中创建基于电子邮件的应用程序.我正在加载一堆消息,我想显示发件人的头像.

我正在使用这个包来显示头像.我想拥有Google ID或图片网址.能够获得其他流行服务的图像也很好,例如Outlook和Yahoo邮件.

其他人也提出了同样的问题,但所有答案似乎都使​​用了Picasa API(已弃用)或Google+ API(将弃用).

编辑:是的,该react-avatar软件包声称它可以根据提供的用户数据找到一个头像,但它与电子邮件的所有功能都是找到一个很多人没有的Gravatar.

javascript gmail google-api avatar gmail-api

7
推荐指数
2
解决办法
2653
查看次数

如何在没有手动浏览器身份验证的情况下从 Meteor.js 应用程序 oauth (2) 向 GMail-api 进行身份验证?

我想在没有手动浏览器身份验证的情况下登录我的流星服务器程序。所以认证必须全部自动化;我根本不想要用户干预/互动。我在这里遇到了答案但它是在 Java 中的,我不知道它是否有效。有人可以在meteor.js 中提供答案。如果答案在 node.js 中并且可以在流星中工作,那也很好。

最好我想在后端运行这个流星代码,作为使用 msavin /SteveJobs pacjage 的工作的一部分。

authentication node.js oauth-2.0 meteor gmail-api

7
推荐指数
1
解决办法
672
查看次数