https://cloud.tencent.com/document/sdk/.NET
2安装包打开vs2017,打开菜单:工具—>nuget包管理器—>管理解决方案的nuget程序包;
安装如下程序包最新版:
- Microsoft.AspNet.WebApi.Client
- Newtonsoft.Json
- Pathoschild.Http.FluentClient
- System.Text.Encodings.Web
- TencentCloudSDK
注意:全部跑起来需要netframework4.7.2,否则发短信会报错。
3 发短信代码如下:Private sub sendmstest()
Dim aaa() As String=New String() {"+8613711112222", "+8613711112222"}
SendMessageAsync(“短信发送测试!”, aaa)
End sub
Async Sub SendMessageAsync(ByVal sContent As String, ByVal sPhone As String())
Try
' 必要步骤:
' 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey
' 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值
' 也可以直接在代码中写入密钥对,但需谨防泄露,不要将密钥复制、上传或者分享他人
'* CAM 密匙查询:https : //console.cloud.tencent.com/cam/capi*/
'获取安全凭证。安全凭证包含 SecretId 及 SecretKey 两部分。SecretId 用于'标识
'API 调用者的身份,SecretKey 用于加密签名字符串和服务器端验证签名字'符串的密钥。
'前往 API 密钥管理 页面进行获取。
Dim cred As Credential = New Credential()
cred.SecretId = "AKID…" '密钥对
cred.SecretKey = "axB…" '密钥对
'
Dim ClientProfile As New ClientProfile()
'
ClientProfile.SignMethod = ClientProfile.SIGN_TC3SHA256
'非必要步骤
'实例化一个客户端配置对象,可以指定超时时间等配置 */
Dim HttpProfile As New HttpProfile()
HttpProfile.ReqMethod = "POST"
'SDK 有默认的超时时间,非必要请不要进行调整
'如有需要请在代码中查阅以获取最新的默认值 */
HttpProfile.Timeout = 10 '// 请求连接超时时间,单位为秒(默认60秒)
'
HttpProfile.Endpoint = "sms.tencentcloudapi.com"
'// 代理服务器,当您的环境下有代理服务器时设定
HttpProfile.WebProxy = Environment.GetEnvironmentVariable("HTTPS_PROXY")
ClientProfile.HttpProfile = HttpProfile
'实例化 SMS 的 client 对象
'第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 */
Dim client As SmsClient = New SmsClient(cred, "ap-guangzhou", ClientProfile)
'实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
'您可以直接查询 SDK 源码确定 SendSmsRequest 有哪些属性可以设置
'属性可能是基本类型,也可能引用了另一个数据结构
'推荐使用 IDE 进行开发,可以方便地跳转查阅各个接口和数据结构的文档说明
Dim req As New SendSmsRequest()
'基本类型的设置
'SDK 采用的是指针风格指定参数,即使对于基本类型也需要用指针来对参数赋值
'SDK 提供对基本类型的指针引用封装函数
'帮助链接:
'短信控制台https //console.cloud.tencent.com/sms/smslist
'sms helper:https : //cloud.tencent.com/document/product/382/3773
req.Sign = "环球科技"
req.SmsSdkAppid = "…" 'req.SmsSdkAppid = "1257310899"
' 短信签名内容: 使用 UTF - 8 编码, 必须填写已审核通过的签名,
'可登录 [短信控制台] 查看签名信息
' req.Sign = "xxx"
'短信码号扩展号: 默认未开通, 如需开通请联系 [sms helper] */
'req.ExtendCode = "x"
'国际/港澳台短信 senderid: 国内短信填空, 默认未开通, 如需开通请联系
'req.SenderId = ""
'用户的 session内容: 可以携带用户侧ID等上下文信息, server 会原样返回
'req.SessionContext = sContent
'下发手机号码,采用 e.164 标准,+[国家或地区码][手机号]
'例如+8613711112222,其中前面有一个+号,86为国家码,13711112222为手机号
' ‘最多不要超过200个手机号’
'req.PhoneNumberSet = New String() {"+8613711112222", "+8613711112222"}
req.PhoneNumberSet = sPhone
'短信模板id,短信模板要先进行申请,不再介绍。
req.TemplateID = "644040" ' 模板参数: 若无模板参数, 则设置为空
req.TemplateParamSet = New String() {sContent}
'通过client对象调用SendSms方法发起请求,注意请求方法名与请求对象是对应的
'返回的 resp 是一个 SendSmsResponse 类的实例,与请求对象对应
Dim resp As SendSmsResponse = Await client.SendSms(req)
'// 输出 JSON 格式的字符串回包
Dim sA As String = AbstractModel.ToJsonString(resp)
If InStr(sA, "send success", CompareMethod.Text) > 0 Then
MessageBox.Show("短信发送成功。")
Else
MessageBox.Show("短信发送失败。错误信息:" & sA)
End If
Catch e As Exception
MessageBox.Show("短信发送失败!")
End Try
Console.Read()
End Sub
说明:以上代码为生产代码,已投入运行使用。密钥对等客户数据被修改。



