Google Voice 保号/自动发送及回复信息

Google Voice(GV) 发短信很简单,用IFTTT就行了,但是用IFTTT无法自动回复信息。这里借助Gmail 和 Google Driver 来自动回复短信达到保号的目地。博主GV可以自动回短信:6202882555

一、自动发送信息

1、注册登录 IFTTT
2、配置 Keep Google Voice Active (Send Messege) (时区注意选择BeiJing。可以自己定义发送的时间及发送信息的内容。)
3、设置好后即可自动给你的 GV 码发送信息了。(你可以设置一下离你现在时间最近的时间测试。功能是已经测试过的没有问题的。)

二、自动回复信息

1、登入 GV,先在 GV 里面设置里面把“将消息转发到电子邮件”打开。
2、登入 Gmail,在设置里选择“过滤器和屏蔽的地址” --> “创建新的过滤器” --> 在发件人处填写 “@txt.voice.google.com”。如下图所示:
gv1.png
3、点击“创建过滤器”,在弹出的对话框点击“选择标签” --> “新建标签”,输入标签名为“autoreply”,点击创建即可。
gv2.png
4、选择如下图所示后点击“创建过滤器”即可。
gv3.png
5、登录 Google Drive,单击左上角的“新建”。按下图新建一个 Google App Script。(如未找到可以在“关联更多应用”里面查找“Google Apps Script”关联一下就有了。)
gv4.png
6、复制下面的代码替换现有的代码。

function autoReplier() {
  var labelObj = GmailApp.getUserLabelByName('autoreply');
  var gmailThreads;
  var messages;
  var messagecount;
  var sender;
  var num = 9;  //设置连续自动回复邮件的次数(为防止两人都是自动回复,当发送次数达到 9 时将不自动回复)。
  var hours = 12;  //如果自动回复次数超过了上面设置的值,过了多少小时后又可以自动回复。
    
  for (var gg = 0; gg < labelObj.getUnreadCount(); gg++) {
    gmailThreads = labelObj.getThreads()[gg];
    messages = gmailThreads.getMessages();
    messagecount = gmailThreads.getMessageCount();
    for (var ii = 0; ii < messages.length; ii++) {
      
      if (messages[ii].isUnread()) {
        
        msg = messages[ii].getPlainBody();
        sender = messages[ii].getFrom(); 
 
        if (messagecount < num){
          MailApp.sendEmail(sender, "Auto Reply", "Hi, 您好!这是一条自动回复短信!本短信由 Google Apps Script 自动发出。");
        }else if( (messages[messagecount - 1].getDate().getTime() - messages[messagecount - num].getDate().getTime()) > hours * 60 * 60 * 1000 ){
          MailApp.sendEmail(sender, "Auto Reply", "Hi, 您好!这是一条自动回复短信!本短信由 Google Apps Script 自动发出。");
        }
        messages[ii].markRead();
        messages[ii].moveToTrash();
 
      }
    }
  }
}

7、点击保存,在弹出的对话框中输出你要显示的名称,例如:autoReplier。再单击“调试”会提示你授权,你按提示授权即可。授权完后会提示没有找到文件之类的,不用管。
8、再次点击“调试”,如果没有任何提示说明脚本没有错误。你也可以在“查看” --> “日志” --> “Apps 脚本信息中心”中查看脚本运行状态。如果显示状态为已完成则表示脚本没有错误。
gv5.png
9、单击“修改” --> “当前项目的触发器” --> 右下角的“添加触发器”,按下图设置好保存即可。
gv6.png
10、好了,现在你可以给自己发一条短信试试了。 (有问题请留言)

最后修改:2019 年 08 月 11 日 12 : 17 PM

46 条评论

  1. misi

    你帮了我大忙,太感谢了٩(ˊᗜˋ*)و

  2. 小时

    楼主, 我没有设置IFTTT自动发送,按你的的设置了自动回复,用别的号发了短信还是自动回复不了,请问下非常注册ifttt吗?

    1. 金稞
      @小时

      自动回复短信功能,是借助google app script 实现的,按照博主的文章去操作就可以的。完成以后,不需要注册IFTTT一样可以自动回复任何号码发来的短信。IFTTT的功能只是用一个指定的号码,定时给你的GV号码发送短信。

    2. 萌精灵
      @小时

      不一定要IFTTT,IFTTT只是定时给你发送信息的。自动回复不起作用去“查看” --> “日志” --> “Apps 脚本信息中心”看看有没有什么报错信息。

      1. 小时
        @萌精灵
        该评论仅登录用户及评论双方可见
        1. 萌精灵
          @小时

          直接通过Gmail发送信息理论上是可以的,有时间我试试。

          1. 小时
            @萌精灵
            该评论仅登录用户及评论双方可见
      2. 小时
        @萌精灵
        该评论仅登录用户及评论双方可见
  3. 金稞

    博主你好," Google App Script"是否已经下架了?我在Google Drive中未能关联到此应用,并且在Google的官网"all products"中仔细查找后任然没有见到Google有提供这个应用。

    1. 萌精灵
      @金稞

      有的,在“更多”-->“更多关联应用”里面。

      1. 金稞
        @萌精灵

        博主,在IFTTT里更新一下"send messege"吧。
        IFTTT中的"Keep Google Voice Active (Send Messege)"这个applet,里面的"send messege"部分,今天下午开始已经不可用了,提示”he requested page or file does not exist. Explore Applet collections instead!“。

        1. 萌精灵
          @金稞

          我测试了一下,没有你说的问题。但会出现“500 Internal Server Error”,应该是IFTTT的问题。只能过段时间再试。OωO

      2. 金稞
        @萌精灵

        好的,谢谢。

        1. 金稞
          @金稞

          博主,在IFTTT里更新一下"send messege"吧。
          IFTTT中的"Keep Google Voice Active (Send Messege)"这个applet,里面的"send messege"部分,今天下午开始已经不可用了,提示”he requested page or file does not exist. Explore Applet collections instead!“。

  4. 如丶果

    TypeError: 无法调用 null 的方法“getUnreadCount”。
    一直提示,我看评论有人说什么好了,也不知道咋好的~

    1. 萌精灵
      @如丶果

      查一下有没有 autoreply 这个标签且在最上层。都是测试过的,又不存在平台兼容性问题。查一下你的步骤有没有错吧。

  5. 303
        if (messagecount < 9){  //为防止两人都是自动回复,当发送数量达到9时不自动回复。
    

    这里在提个建议可以么? 就是限制时间,比如24H内只回复9条,但是24H后,又可以正常回复。这里主要是考虑到某些订阅的短信,如果只限制9条,那么以后收的也没办法回复了。

    1. 萌精灵
      @303

      加入了你说的设定,过了N小时后又可以自己回复了。

    2. 萌精灵
      @303

      可以是可以,不过没有直接的方法可以获取上一份邮件的时间,但是你可以结合工作表完成这个工作。

  6. zz

    =-= 运行没问题,但是测试发过去没有回过来。是什么情况呢?

    1. 萌精灵
      @zz

      另外发过来的信息在Gmail中必须是未读的,触发器也要记得设置。

      1. zz
        @萌精灵

        设置了触发器什么的,会触发触发的很慢,没你的快,你的一会就回复了,我的基本要等个10分钟最少

        1. 萌精灵
          @zz

          应该不会呀。你只要按上面的图设置就行,选择间隔分钟数为“每分钟”。

          1. zz
            @萌精灵

            =-= 不知道什么情况,反正就是这样。。。

    2. 萌精灵
      @zz

      gmail能收到信息?autoreply标签建了?

  7. TTTTT

    能不能把代码文本发一下呀

    1. 萌精灵
      @TTTTT

      代码上面不是都有吗?

  8. sword

    有个问题,如果两个都有自动回复的gv号在发,那么,,,,,,就会一直在回复了

    1. 萌精灵
      @sword

      这个问题改了。OωO

    2. 萌精灵
      @sword

      讲真,还真会。可在GV把“将消息转发到电子邮件”这个选项暂时关闭2分钟左右就行。

      后面看一下能不能加个判断,同一个联系人超过n次将不在回复。OωO

      1. 303
        @萌精灵

        或者就是简单的24h只回复一次
        现在两个机器人玩的不亦乐乎啊

        1. 萌精灵
          @303

          改了代码,当发送数量达到9时不自动回复。同时回收站中超过 30 天的邮件将会自动删除,所以不会出现达到数量后无法自动回复的问题。

  9. 303

    TypeError: 无法调用 null 的方法“getUnreadCount”。(第 7 行,“代码”文件)关闭

    这里如何修改?

    thanks

    1. 303
      @303

      搞定了,firter写错了。。。

      1. 萌精灵
        @303

        能用了就好。OωO

        1. 303
          @萌精灵

          感觉只能触发之前发的,如果有新短信进入,只能运行程序后才会自动回复。。
          我估计你没看懂我在说啥。。

          1. 萌精灵
            @303

            按最后一个图,程序是自动运行的呀。有新的短信进入会自己回呀。你可以发我tg号试试,一直都有回复的。

          2. 303
            @303

            发美国zip到888777 这样可以获取自动回复的路况信息
            然后用你这个脚本,然后就是机器人来回自动回复了。。
            这个原理是不是通过邮件发送的方式?

            1. 萌精灵
              @303

              原理就是通过邮件来发送的。你可以在已发送里面看到相关信息。

  10. nssiwi

    感谢,已经设置好了,能用

    1. nssiwi
      @nssiwi

      给自己发一条短信后,这个脚本开始一直循环了ヾ(´・ ・`。)ノ"

      1. nssiwi
        @nssiwi

        看了楼主代码,如果有未读标签邮件就会 一直这样循环回复,所以去把这个标签下未读的标记成已读的就好了ヾ(≧∇≦*)ゝ

        1. nssiwi
          @nssiwi

          然后给楼主的gv发了短信,然后开始循环回复,哈哈

        2. 萌精灵
          @nssiwi

          客气了,能用就好。OωO

发表评论