文档首页 > > SDK参考> Python SDK> 开始使用

开始使用

分享
更新时间: 2020/01/17 GMT+08:00

使用示例代码发送短信

以下给出了发送短信的代码,采用华为云账号密码的方式创建服务实例。

说明:
  • 存在问题:由于代码中有中文字符,若您直接把代码复制到Windows的文本中,因windows默认中文编码是GBK,执行代码时可能会报编码错误。
  • 解决办法:
    1. 用Windows文本编辑器打开python脚本,选择“文件 > 另存为”。
    2. 在弹出的对话框中,“保存类型”更改为“所有文件(*.*)”,“编码 ”由默认的“ANSI”改为“UTF-8”,文件名保持不变。
    3. 单击保存。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# coding=utf-8
import time
from smnsdkcore.client import SMNClient
from smnsdkrequests.v20171105.SmsPublish import SmsPublish

def demoSendSms(sms_sign_id, endpoint, message):
    request = SmsPublish()
    request.set_endpoint(endpoint)
    request.set_message(message)
    request.set_sign_id(sms_sign_id)
    return client.send(request)

if __name__ == "__main__":
    client = SMNClient(username='YourAccountUserName', domain_name='YourAccountDomainName', password='YourAccountPassword', region_id='YourRegionName')
    #sms_sign_id为您使用的短信签名的签名ID
    sms_sign_id = 'a0f6d2****cd4ff8b70eeecb612511da'
    #phoneNumber为您要发送短信的手机号码
    phoneNumber = '+8618682****29'
    message = '您的验证码是:1234,请查收'

    status, headers, response_body = demoSendSms(sms_sign_id, phoneNumber, message)
    print status, response_body

使用示例代码通过主题发布消息

以下给出了创建主题、添加订阅的示例代码,添加订阅成功会发送订阅确认消息给终端。

创建Topic,并获取response返回的topic_urn

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# coding=utf-8

from smnsdkcore.client import SMNClient
from smnsdkrequests.v20171105.CreateTopic import CreateTopic

def demoCreateTopic(topic_name, display_name):
    request = CreateTopic()
    request.set_topic_name(topic_name)
    request.set_display_name(display_name)
    return client.send(request)

if __name__ == "__main__":
    client = SMNClient(username='YourAccountUserName', domain_name='YourAccountDomainName', password='YourAccountPassword', region_id='YourRegionName')

    status, headers, response_body = demoCreateTopic('python-sdk', 'FromCloud')
    print status, response_body

向Topic添加订阅,获取response返回的subscription_urn。代码中test_urn是上述代码返回的topic_urnendpoint_phone改成具体手机号

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# coding=utf-8

from smnsdkcore.client import SMNClient
from smnsdkrequests.v20171105.Subscribe import Subscribe

def demoSubscribe(topic_urn, endpoint, remark):
    request = Subscribe()
    request.set_endpoint(endpoint)
    request.set_remark(remark)
    request.set_topic_urn(topic_urn)
    return client.send(request)   

if __name__ == "__main__":
    client = SMNClient(username='YourAccountUserName', domain_name='YourAccountDomainName', password='YourAccountPassword', region_id='YourRegionName')

    test_urn = 'urn:smn:cn-north-1:xxxx:python-sdk'
    endpoint_phone = '+8618682****29'
    endpoint_remark = 'this is pengzl phone'
    status, headers, response_body = demoSubscribe(test_urn, endpoint_phone, endpoint_remark)
    print status, response_body

手机终端收到订阅确认短信,点击订阅链接确认订阅后,您可以向主题发布消息。代码中test_urnsubscription_urn分别是上述返回的topic_urnsubscription_urn

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# coding=utf-8

from smnsdkcore.client import SMNClient
from smnsdkrequests.v20171105 import Publish
from smnsdkrequests.v20171105.Publish import PublishMessage

def demoPublishMessage(topic_urn, message):
    request = PublishMessage()
    request.set_topic_urn(topic_urn)
    request.set_subject("Subject, only display to email subscription")
    request.set_message(message)
    return client.send(request)

if __name__ == "__main__":
    client = SMNClient(username='YourAccountUserName', domain_name='YourAccountDomainName', password='YourAccountPassword', region_id='YourRegionName')

    test_urn = 'urn:smn:cn-north-1: xxxx:python-sdk'
    subscription_urn = 'urn:smn:cn-north-1: xxxx:python-sdk:xxxx'
    message = '您的验证码是:1234,请查收'

    status, headers, response_body = demoPublishMessage(test_urn, message)
    print status, response_body

更多示例代码请参考github上的example项目

Example项目地址

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区