-
1 # 小小猿愛嘻嘻
-
2 # 耕雲不盡釣月無痕
免費的沒見過。
收費的用過雲片網的簡訊平臺,提供的都是http介面,會送幾條免費的做測試,簡訊也便宜的,六分七分的都有看充值多少。
現在搜尋出來的還有網易的雲信等等,應該也不差。
簡訊內容基本都是基於模板,http介面開發也簡單。
-
3 # 程式猿來導事
Python傳送簡訊需要透過呼叫第三方簡訊SMS伺服器API來實現,然後SMS簡訊伺服器會將簡訊資料分發給通話手機、通話平板、通話手錶等。
目前第三方簡訊SMS伺服器國外的有twilio,國內的有BAT大企業的SMS簡訊雲服務。由於傳送簡訊設計電話號碼隱私安全問題,個人建議用國內BAT物聯網巨頭的SMS簡訊服務。
1.騰訊SMS簡訊雲服務Python程式碼實現:
pip install qcloudsms_py #安裝騰訊SMS庫
appid = 1400009099
appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad"
phone_numbers = ["21212313123", "12345678902", "12345678903"]
template_id = 7839
sms_sign = "Test"
from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
sms_type = 0 # Enum{0: 普通簡訊, 1: 營銷簡訊}
ssender = SmsSingleSender(appid, appkey)
try:
result = ssender.send(sms_type, 86, phone_numbers[0],
"驗證碼是:5678", extend="", ext="")
except HTTPError as e:
print(e)
except Exception as e:
print(e)
print(result)
2.百度SMS簡訊雲服務Python程式碼實現:
python setup.py install
#!/usr/bin/env python
#coding=utf-8
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.auth.bce_credentials import BceCredentials
import sms_client_conf
from baidubce.services.sms.sms_client import SmsClient
host = "sms.bj.baidubce.com"
access_key_id = "your-access-key-id"
secret_access_key = "your-secret-access-key"
config = BceClientConfiguration(credentials=BceCredentials(access_key_id, secret_access_key),
endpoint=host)
CONF = sms_client_conf
sms_client = SmsClient(CONF.config)
my_policy = BackOffRetryPolicy(max_error_retry = 3,
max_delay_in_millis=20 * 1000,
base_interval_in_millis=300)
my_config = BceClientConfiguration(
credentials = BceCredentials("your-access-key-id", "your-secret-access-key"),
endpoint = "sms_service_host",
protocol = baidubce.protocol.HTTP,
region = baidubce.region.BEIJING,
connection_timeout_in_mills = 50 * 1000,
send_buf_size = 1024 * 1024,
recv_buf_size = 10 * 1024 * 1024,
retry_policy = my_policy)
my_client = SmsClient(my_config)
try:
invoke_id = "dkwL6mUT-7JNv-hznY"
template_id = "smsTpl:6c96f891-e42a-4fc3-b615-a56b21d6d464"
receiver = "13845678990"
content_var = {"number": "10"}
response = sms_client.send_message_2(invoke_id, template_id, receiver, content_var)
print response.request_id
except BceHttpClientError as e:
if isinstance(e.last_error, BceServerError):
LOG.error("send message failed. Response %s, code: %s, msg: %s"
% (e.last_error.status_code, e.last_error.code, e.last_error.message))
else:
LOG.error("send message failed. Unknown exception: %s" % e)
3.阿里SMS簡訊雲服務安裝阿里SMS簡訊服務庫
pip install aliyun-python-sdk-core #Python2
pip install aliyun-python-sdk-core-v3 #Python3
pip install aliyun-python-sdk-ecs
Python程式碼實現:
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest
from aliyunsdkecs.request.v20140526 import StopInstanceRequest
client = AcsClient(
"<your-access-key-id>",
"<your-access-key-secret>",
"<your-region-id>"
);
request = DescribeInstancesRequest.DescribeInstancesRequest()
request.set_PageSize(10)
response = client.do_action_with_exception(request)
print response
-
4 # 傳智播客
首先我們都知道的是相對郵件來說簡訊更直接可靠。我們生活當中接受的各種驗證碼,比如在應用中的密碼找回,還有我們現在經常用到的驗證碼,以及在快遞驛站取快遞的時候,收到的用到的都是簡訊的應用。本篇回答,會簡單的介紹一下使用Python發簡訊的方式。文末有彩蛋,回答有誤也請大家多多指出。
使用模組----用Twiio發簡訊
題主找的免費的平臺,那麼Twiio就是一個免費的SMS的閘道器服務,在官網註冊以後可以使用程式向登記過的電話好嗎傳送資訊。我們也要考慮的是安全因素,僅僅是支援對註冊電話號碼傳送資訊。說句大白話就是,這個方式不試用在網站面向網站使用者。Twiio知識提供一個試用賬戶和一個電話號碼,作為簡訊的傳送人。試用這個模組發簡訊的時候,需要三個資訊。就是賬戶的SID和使用者AUTH和Twiio的電話號碼。在我們登陸Twiio之後,在頁面可以找到這些資訊的。
下面說一下使用前需要安裝的Twiio模組
pip install twilio在使用Twiio傳送資訊可以分成三個步驟如下:
在官網註冊等級
記錄下accountSID,auth Token,Twiio電話號碼
呼叫Client傳送簡訊
由於Twiio模式的設計方式,我們在匯入它的時候需要試用
twilio.rest
。i奧用模組傳送簡訊的程式碼也是很簡單的,只需要呼叫模組的Client模組,設定好accountSID,auth Token就可以了。這裡需要注意的是,簡訊好嗎需要加上國際區號,而且Python版本3和2在這裡的程式碼是不一樣的~
from twilio.rest import ClientaccountSID="youraccounSID"authToken="yourauthToken"myNumber="+8618888888888"twilioNumber="+15555555555"def textmyself(message): twilioCli = Client(accountSID,authToken) twilioCli.api.account.messages.create(body=message,from_=twilioNumber,to=myNumber)//python2 twilioCli.messages.create(body=message,from_=twilioNumber,to=myNumber)//python3引數意義:
body:短訊息的內容
from_:twilio的號碼
to:註冊號碼
使用API----阿里雲簡訊服務
跟前面提到twilio模組是不一樣的,但是網站是面向使用者提傳送簡訊的。和twilio相比之下,twilio是不可以傳送資訊到陌生號碼的,阿里是可以的,但是安全也做的很好的。所以想給別人弄簡訊轟炸的基本上實現不了。阿里雲簡訊服務是收費的。價格表大家自己查詢一下。下面說流程:
1.開始使用:
相比較twilio提供的簡訊傳送服務來說,阿里雲簡訊服務比較複雜。首先步驟如下:
全部導航當中--->產品--->雲通訊---->簡訊服務找到簡訊服務進入口,進入後需要先開通服務,然後才可以管理簡訊服務。
2.傳送簡訊必須的條件:
簡訊簽名
簡訊模板
使用者key
首先需要設定簡訊簽名和模板,都是需要認證的。一般需要時間是幾十分鐘。新建簽名和模板都很容易,另外阿里雲也貼心的給出了模板都是自己按照需求填寫就可以了。
之後就是管理控制檯記錄下的AccessKey和AccessKeySercet,用於填寫到後面的程式當中。準備好這些資訊後,就可以按照需要呼叫介面了。介面就是呼叫阿里雲有比較完善的文件和程式註釋,按照官方的文件和註釋操作就可以了。實際應用大家可以在自己操作一下。
3. API的使用
這裡還有一點要和足以的是API呼叫傳遞變數的時候,我們需要預先在簡訊末班上設定的變數賦值,然後轉化為JSON格式,傳遞到呼叫的相應函式中,否則簡訊內容就是顯示相應的變數名,沒有實際的值。
值的轉換案例:
python字典格式
data = {"name" : "someone","oday" : day,"weather" : weather}#轉換成JSON格式params = json.dumps(data)print send_sms(__business_id, "180000000", "簡訊簽名", "SMS_12365e", params)做好這些之後就可以傳送簡訊了,寫好出發時間可以收到程式發來的簡訊,想下生活當中的例項,這一項功能還是很有意思的。
彩蛋
回覆列表
這裡介紹一種簡單的方式—twilio,藉助twilio,python可以實現簡訊的傳送,下面我簡單介紹一下python如何利用twilio傳送簡訊,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
1.註冊twilio,這個直接到官網https://www.twilio.com/註冊就行,輸入必要資訊就行,如下:
2.註冊成功後,登陸twilio,建立一個應用,進入Dashbord介面,這裡就會顯示當前的ACCOUNT SID和AUTH TOKEN,後面的程式碼中要用到這2個值:
4.最後就是程式碼了,這裡按著官方提供的程式碼來就行,如下,以python為例,步驟如下:
先安裝twilio,這個直接在cmd視窗輸入命令“pip install twilio”就行,如下:
測試程式碼如下,替換相關資訊就行,很簡單:
程式執行截圖如下,手機已經成功接收到簡訊:
至此,我們就完成了利用python傳送簡訊的功能。總的來說,整個過程很簡答,只要熟悉一下相關程式碼,很快就能掌握的,網上也有相關教程和資料,感興趣的可以搜一下,只不過,twilio傳送的免費短息有次數限制,大概在500次,過後就需要付費才能使用,希望以上分享的內容能對你有所幫助吧。