3

这个 Google Script 页面说 stackoverflow 是发布 Google Script 问题的地方,所以我在这里。

我想使用 Google 脚本自动向 Google 电子表格中的所有手机号码发送短信 (SMS)。

可以按照本教程将电子邮件发送到电子表格中的所有电子邮件地址,但是当我尝试在电子表格中使用电话号码代替电子邮件地址时,我收到一个错误,即这些不是有效的电子邮件地址。很公平。如果我知道与每个手机号码相关联的手机公司,我可以将这些电话号码转换为电子邮件地址(这是一个常见的选项,有几个指南解释它,比如这个),但我没有那个手机提供商信息。

我当然不是第一个尝试从电脑而不是手机自动发送短信的人。 这个问题是询问它的更流行(但也更老)的问题之一。 Twilio在我浏览过的几个答案中弹出,但这不是一项免费服务(虽然它很便宜,我承认。)不过,谷歌有免费选项,所以我想我会尝试这些。 Google Voice 可以发送免费短信,您甚至可以通过 Gmail发送免费短信。

我知道很多人都在搜索 API 以使用 Google 服务发送短信,但似乎没有。有一些有趣的项目,如google-voice-java,但这些项目比任何事情都更有效。

因此,我想我只需使用一个 Google 服务(Google Docs 电子表格)通过使用第 3 个(Google Script)来调用另一个(Google Voice 或 GMail)。有没有办法做到这一点?有没有办法让谷歌脚本发送短信?例如,MailApp.sendEmail发送电子邮件 - 是否有发送短信 (SMS) 的邮件?如果没有,是否可以MailApp.sendEmail通过按摩/陪审团操纵发送文本(无需将电话号码转换为电子邮件地址,如 [phonenumber]@txt.att.net)?是否可以使用其他脚本选项,可能与 Google Chat 相关(因为 GMail 短信选项与 Google Chat 相关)?

4

2 回答 2

2

我最近加入了一个团队,该团队制作了一个名为Text gBlaster的 Google 插件,它完成了我相信您所要求的。这很容易,所以请随意尝试。

除此之外,如果您想在不通过运营商的电子邮件服务发送的情况下自己进行操作(Bill 上面提到过,这是一个很好的解决方案),那么您将需要使用像 Twilio 这样的第三方(我们正在使用) . 您基本上使用电子表格将请求发送到 Twilio,然后 Twilio 将消息发送出去。

如果您走这条路,这里有一些可以与 Twilio 一起使用的基本代码。您将需要定义 toNumber、bodyMessage、SID、Token 和 twilioNumber。toNumber 是接收消息的号码,bodyMessage 是文本消息的正文,SID 和令牌在您创建 Twilio 帐户时提供给您,twilioNumber 是您通过 Twilio 拥有的用于发送消息的电话号码从。

    function sendSms(toNumber,bodyMessage, SID, Token, twilioNumber) {
    var url = "https://api.twilio.com/2010-04-01/Accounts/" +            // URL used to enter correct Twilio acct
      SID + "/SMS/Messages.json";                                           
    var options = {                                                      // Specify type of message             
      method: "post",                                                    // Post rather than Get since we are sending
      headers: {                                                         
        Authorization: "Basic " + 
        Utilities.base64Encode(SID + ":" + Token)
      },
      payload: {                                                         // SMS details
        From: twilioNumber,
        To: toNumber,
        Body: bodyMessage
      }
    };
    var response = UrlFetchApp.fetch(url, options);                   // Invokes the action
    Logger.log(response);
}
于 2015-08-21T00:55:21.577 回答
1

It depends on the cell phone carrier. To send a text to a Sprint number, for example, put the message in an email addressed in this manner:

2013456789@messaging.sprintpcs.com

(yes, they still have the "pcs" in the domain name...)

于 2015-05-01T21:08:36.457 回答