Google Voice(GV) 发短信很简单,用IFTTT就行了,但是用IFTTT无法自动回复信息。这里借助Gmail 和 Google Driver 来自动回复短信达到保号的目地。博主GV可以自动回短信:6202882555 和 2522202211
有问题请博客留言,也欢迎加入右边TG群组交流。
一、自动发送信息
1、使用IFTTT发送信息(目前发短信权限好像无法使用,用第2点吧。)
1.1、注册登录 IFTTT
1.2、配置 Keep Google Voice Active (Send Messege) (时区注意选择BeiJing。可以自己定义发送的时间及发送信息的内容。)
1.3、设置好后即可自动给你的 GV 码发送信息了。(你可以设置一下离你现在时间最近的时间测试。功能是已经测试过的没有问题的。)
2、给号码22122发短信,内容为“JOIN”。订阅成功,每月2条。
二、自动回复信息
1、登入 GV,先在 GV 里面设置里面把“将消息转发到电子邮件”打开。
2、登入 Gmail,在设置里选择“过滤器和屏蔽的地址” –> “创建新的过滤器” –> 在发件人处填写 “@txt.voice.google.com”。如下图所示:
3、点击“创建过滤器”,在弹出的对话框点击“选择标签” –> “新建标签”,输入标签名为“autoreply”,点击创建即可。
4、选择如下图所示后点击“创建过滤器”即可。
5、登录 Google Drive,单击左上角的“新建”。按下图新建一个 Google App Script。(如未找到可以在“关联更多应用”里面查找“Google Apps Script”关联一下就有了。)
6、复制下面的代码替换现有的代码。
function autoReplier() {
var labelObj = GmailApp.getUserLabelByName('autoreply');
var gmailThreads;
var messages;
var messagecount;
var sender;
var num = 9; //设置连续自动回复邮件的次数(为防止两人都是自动回复,当发送次数达到 9 时将不自动回复)。
var hours = 12; //过了多少小时后又可以自动回复。
try {
for (var gg = 0; gg < labelObj.getUnreadCount(); gg++) {
gmailThreads = labelObj.getThreads()[gg];
messages = gmailThreads.getMessages();
messagecount = gmailThreads.getMessageCount();
//console.log(messages[messagecount - 9].getDate() + " time");
for (var ii = 0; ii < messages.length; ii++) {
if (messages[ii].isUnread()) {
msg = messages[ii].getPlainBody();
sender = messages[ii].getFrom();
array = [["最灵繁的人也看不见自己的背脊。——非洲"],["最困难的事情就是认识自己。——希腊"],["有勇气承担命运这才是英雄好汉。——黑塞"],["阅读使人充实,会谈使人敏捷,写作使人精确。——培根"],["自知之明是最难得的知识。——西班牙"],["有时候读书是一种巧妙地避开思考的方法。——赫尔普斯"],["越是无能的人,越喜欢挑剔别人的错儿。——爱尔兰"],["一个人即使已登上顶峰,也仍要自强不息。——罗素·贝克"],["最大的挑战和突破在于用人,而用人最大的突破在于信任人。——马云"]];
var j = Math.floor(Math.random() * (array.length));
var temp = array[j];
if (messagecount < num){
MailApp.sendEmail(sender, "Auto Reply", temp);
}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();
}
}
}
} catch (err) {
console.error('for loop error: ' + e);
}
}
7、点击保存,在弹出的对话框中输出你要显示的名称,例如:autoReplier。再单击“调试”会提示你授权,你按提示授权即可。授权完后会提示没有找到文件之类的,不用管。
8、再次点击“调试”,如果没有任何提示说明脚本没有错误。你也可以在“查看” –> “日志” –> “Apps 脚本信息中心”中查看脚本运行状态。如果显示状态为已完成则表示脚本没有错误。
9、单击“修改” –> “当前项目的触发器” –> 右下角的“添加触发器”,按下图设置好保存即可。
10、好了,现在你可以给自己发一条短信试试了。 ::twemoji:smile:: (有问题请留言)
TypeError: Cannot call method “getUnreadCount” of null. (line 10, file “Code”),检查了步骤没发现有错,但是一直这里报错.
@tongycc 没给权限吗?也有可能是没有未读邮件,你搞个未读的试试。
@萌精灵 我的也是这个问题
@proof 一是没有autoreply标签,二是没有未读邮件,三是没有权限。
好像 Keep Google Voice Active (Send Messege) 这个东西设置不了,我进去页面是空的,搜索也搜不到这个,是下架了吗?
@肉肉 今天看了一下,可以用。
感谢作者,希望脚本能增加判断,例如收到的邮件有“Google Apps Script”字串即不回复。
你帮了我大忙,太感谢了٩(ˊᗜˋ*)و
楼主, 我没有设置IFTTT自动发送,按你的的设置了自动回复,用别的号发了短信还是自动回复不了,请问下非常注册ifttt吗?
@小时 不一定要IFTTT,IFTTT只是定时给你发送信息的。自动回复不起作用去“查看” –> “日志” –> “Apps 脚本信息中心”看看有没有什么报错信息。
@萌精灵 [secret]已经弄好了,谢谢|´・ω・)ノ
[/secret]
@萌精灵 [secret]博主,能不能直接弄成定时每个月主动发一次自信,在过滤器中把@txt.voice.google.com改成XXXXXX@txt.voice.google.com,在代码里改下主动向指定人发信息,我是我不懂代码|´・ω・)ノ
[/secret]
@小时 直接通过Gmail发送信息理论上是可以的,有时间我试试。 ::twemoji:smile::
@萌精灵 [secret]大佬,膜拜中ing… ::twemoji:tilted::
[/secret]
@小时 自动回复短信功能,是借助google app script 实现的,按照博主的文章去操作就可以的。完成以后,不需要注册IFTTT一样可以自动回复任何号码发来的短信。IFTTT的功能只是用一个指定的号码,定时给你的GV号码发送短信。
博主你好,” Google App Script”是否已经下架了?我在Google Drive中未能关联到此应用,并且在Google的官网”all products”中仔细查找后任然没有见到Google有提供这个应用。
@金稞 有的,在“更多”–>“更多关联应用”里面。
@萌精灵 好的,谢谢。
@金稞 博主,在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!“。
@萌精灵 博主,在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!“。
@金稞 我测试了一下,没有你说的问题。但会出现“500 Internal Server Error”,应该是IFTTT的问题。只能过段时间再试。OωO
TypeError: 无法调用 null 的方法“getUnreadCount”。
一直提示,我看评论有人说什么好了,也不知道咋好的~
@如丶果 查一下有没有 autoreply 这个标签且在最上层。都是测试过的,又不存在平台兼容性问题。查一下你的步骤有没有错吧。
if (messagecount
@303 可以是可以,不过没有直接的方法可以获取上一份邮件的时间,但是你可以结合工作表完成这个工作。
@303 加入了你说的设定,过了N小时后又可以自己回复了。
=-= 运行没问题,但是测试发过去没有回过来。是什么情况呢?
@zz gmail能收到信息?autoreply标签建了?
@zz 另外发过来的信息在Gmail中必须是未读的,触发器也要记得设置。
@萌精灵 设置了触发器什么的,会触发触发的很慢,没你的快,你的一会就回复了,我的基本要等个10分钟最少
@zz 应该不会呀。你只要按上面的图设置就行,选择间隔分钟数为“每分钟”。
@萌精灵 =-= 不知道什么情况,反正就是这样。。。
@萌精灵 请问最近还可以吗?为什么我的不自动回了
@zz 可以呀,没有毛病呀。
@萌精灵 奇怪,我的不回复了,然后重新搞他也不回了= =不知道什么情况
@萌精灵 见鬼了,我就剩一个可以自动回复,可以回复的脚本还在回收站里,其他的怎么搞都不回复了
能不能把代码文本发一下呀
@TTTTT 代码上面不是都有吗?
有个问题,如果两个都有自动回复的gv号在发,那么,,,,,,就会一直在回复了
@sword 讲真,还真会。可在GV把“将消息转发到电子邮件”这个选项暂时关闭2分钟左右就行。
后面看一下能不能加个判断,同一个联系人超过n次将不在回复。OωO
@萌精灵 或者就是简单的24h只回复一次
现在两个机器人玩的不亦乐乎啊
@303 改了代码,当发送数量达到9时不自动回复。同时回收站中超过 30 天的邮件将会自动删除,所以不会出现达到数量后无法自动回复的问题。
@sword 这个问题改了。OωO
TypeError: 无法调用 null 的方法“getUnreadCount”。(第 7 行,“代码”文件)关闭
这里如何修改?
thanks
@303 搞定了,firter写错了。。。
@303 能用了就好。OωO
@萌精灵 感觉只能触发之前发的,如果有新短信进入,只能运行程序后才会自动回复。。
我估计你没看懂我在说啥。。
@303 发美国zip到888777 这样可以获取自动回复的路况信息
然后用你这个脚本,然后就是机器人来回自动回复了。。
这个原理是不是通过邮件发送的方式?
@303 原理就是通过邮件来发送的。你可以在已发送里面看到相关信息。
@萌精灵 这个时间驱动器建议设置为按月
否则会经常报错
@303 你很多报错的吗?我基本没有收到有报错的。按天应该就可以了。 ::aru:smile::
@303 按最后一个图,程序是自动运行的呀。有新的短信进入会自己回呀。你可以发我tg号试试,一直都有回复的。
@303 我也是这个问题
你怎么搞好的
感谢,已经设置好了,能用
@nssiwi 给自己发一条短信后,这个脚本开始一直循环了ヾ(´・ ・`。)ノ”
@nssiwi 看了楼主代码,如果有未读标签邮件就会 一直这样循环回复,所以去把这个标签下未读的标记成已读的就好了ヾ(≧∇≦*)ゝ
@nssiwi 客气了,能用就好。OωO
@nssiwi 然后给楼主的gv发了短信,然后开始循环回复,哈哈