天天看點

使用阿裡雲消息服務mns發送短信下載下傳mns解壓安裝運作例如

下載下傳mns

解壓

unzip aliyun-mns-python-sdk-.zip
           

安裝

cd mns_python_sdk
su - root
python setup.py install
           

運作

from mns.account import Account
from mns.topic import DirectSMSInfo, TopicMessage
from mns.mns_exception import MNSExceptionBase
'''
Step 1. 擷取主題引用
'''
# 從https://account.console.aliyun.com/#/secure擷取$YourAccountid
# 從https://ak-console.aliyun.com/#/accesskey擷取$YourAccessId和$YourAccessKey
# 從http://$YourAccountId.mns.cn-hangzhou.aliyuncs.com擷取$YourMNSEndpoint, eg. http://1234567890123456.mns.cn-hangzhou.aliyuncs.com
my_account = Account("$YourMNSEndpoint", "$YourAccessId", "$YourAccessKey")
my_topic = my_account.get_topic("$YourTopicName")
'''
Step 2. 設定SMS消息體(必須)
注:目前暫時不支援消息内容為空,需要指定消息内容,不為空即可。
'''
msg_body1 = "sms-message1."
msg_body2 = "sms-message2."
'''
Step 3. 生成SMS消息屬性,single=False表示每個接收者參數不一樣,
'''
# 3.1 設定SMSSignName和SMSTempateCode
direct_sms_attr1 = DirectSMSInfo(free_sign_name="$YourSignName", template_code="$YourSMSTemplateCode", single=False)
# 3.2 指定接收短信的手機号并指定發送給該接收人的短信中的參數值(在短信模闆中定義的)
direct_sms_attr1.add_receiver(receiver="$YourReceiverPhoneNumber1", params={"$YourSMSTemplateParamKey1": "$Value1"})
direct_sms_attr1.add_receiver(receiver="$YourReceiverPhoneNumber2", params={"$YourSMSTemplateParamKey1": "$Value2"})
'''
Step 4. 生成SMS消息屬性,single=True表示每個接收者參數一樣
'''
direct_sms_attr2 = DirectSMSInfo(free_sign_name="$YourSignName", template_code="$YourSMSTemplateCode", single=True)
direct_sms_attr2.add_receiver(receiver="$YourReceiverPhoneNumber1")
direct_sms_attr2.add_receiver(receiver="$YourReceiverPhoneNumber2")
direct_sms_attr2.set_params({"$YourSMSTemplateParamKey1": "$Value"})
'''
#Step 5. 生成SMS消息對象
'''
msg1 = TopicMessage(msg_body1, direct_sms = direct_sms_attr1)
msg2 = TopicMessage(msg_body2, direct_sms = direct_sms_attr2)
try:
    '''
    Step 6. 釋出SMS消息
    '''
    re_msg = my_topic.publish_message(msg1)
    print "Publish Message Succeed. MessageBody:%s MessageID:%s" % (msg_body1, re_msg.message_id)
    re_msg = my_topic.publish_message(msg2)
    print "Publish Message Succeed. MessageBody:%s MessageID:%s" % (msg_body2, re_msg.message_id)
except MNSExceptionBase,e:
    if e.type == "TopicNotExist":
        print "Topic not exist, please create it."
        sys.exit()
    print "Publish Message Fail. Exception:%s" % e
           

例如

# -*- coding: utf-8 -*-
import os
import random
from mns.account import Account
from mns.topic import DirectSMSInfo, TopicMessage
from mns.mns_exception import MNSExceptionBase
from mns.mns_tool import MNSLogger
'''
Step 1. 擷取主題引用
'''
# MNSLogger.get_logger的參數: 
# log_name: 預設為 mns_python_sdk
# log_file: 預設為 mns所安裝路徑下的mns_python_sdk.log檔案, 如果不是root使用者, 一般情況下是沒有權限寫該檔案.
# log_level: 預設為 INFO
log_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'mns_python_sdk.log')
logger = MNSLogger.get_logger(log_file=log_file)
my_account = Account("http://xxxxxx.mns.cn-beijing.aliyuncs.com/", "xxxxxx", "xxxxxx", logger=logger)
my_topic = my_account.get_topic("sms.topic-cn-beijing")
'''
Step 2. 設定SMS消息體(必須)
注:目前暫時不支援消息内容為空,需要指定消息内容,不為空即可。
'''
msg_body2 = "sms-message2."
'''
Step 4. 生成SMS消息屬性,single=True表示每個接收者參數一樣
'''
direct_sms_attr2 = DirectSMSInfo(free_sign_name="xxxxxx", template_code="xxxxxx", single=True)
direct_sms_attr2.add_receiver(receiver="xxxxxxxxxxx")
direct_sms_attr2.add_receiver(receiver="yyyyyyyyyyy")
direct_sms_attr2.add_receiver(receiver="zzzzzzzzzzz")
'''
#Step 5. 生成SMS消息對象
'''
msg2 = TopicMessage(msg_body2, direct_sms = direct_sms_attr2)
try:
    '''
    Step 6. 釋出SMS消息
    '''
    re_msg = my_topic.publish_message(msg2)
    print "Publish Message Succeed. MessageBody:%s MessageID:%s" % (msg_body2, re_msg.message_id)
except MNSExceptionBase,e:
    if e.type == "TopicNotExist":
        print "Topic not exist, please create it."
        sys.exit()
    print "Publish Message Fail. Exception:%s" % e
           
上一篇: 萬惡的kpi