You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
7 months ago
|
'use strict';
|
||
|
|
||
|
const Dysmsapi20170525 = require('@alicloud/dysmsapi20170525');
|
||
|
const OpenApi = require('@alicloud/openapi-client');
|
||
|
const Util = require('@alicloud/tea-util');
|
||
|
const Tea = require('@alicloud/tea-typescript');
|
||
|
|
||
|
class AliyunSMSClient {
|
||
|
|
||
|
/**
|
||
|
* 使用AK&SK初始化账号Client
|
||
|
* @return Client
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
static createClient(myConfig) {
|
||
|
// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
|
||
|
// 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378664.html。
|
||
|
let config = new OpenApi.Config({
|
||
|
accessKeyId: myConfig.ALIBABA_CLOUD_ACCESS_KEY_ID,
|
||
|
accessKeySecret: myConfig.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
|
||
|
});
|
||
|
|
||
|
// Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
|
||
|
config.endpoint = `dysmsapi.aliyuncs.com`;
|
||
|
return new Dysmsapi20170525.default(config);
|
||
|
}
|
||
|
|
||
|
static async send(myConfig, signName, templateCode, templateParam, phoneNumber) {
|
||
|
let sendSmsRequest = new Dysmsapi20170525.SendSmsRequest({
|
||
|
signName: signName,
|
||
|
templateCode: templateCode,
|
||
|
templateParam: templateParam,
|
||
|
phoneNumbers: phoneNumber,
|
||
|
});
|
||
|
|
||
|
let runtime = new Util.RuntimeOptions({ });
|
||
|
let client = AliyunSMSClient.createClient(myConfig);
|
||
|
|
||
|
let done = false;
|
||
|
|
||
|
try {
|
||
|
await client.sendSmsWithOptions(sendSmsRequest, runtime);
|
||
|
done = true;
|
||
|
} catch (error) {
|
||
|
console.error("AliyunSMSClient send sms message failed: %s", error.message);
|
||
|
}
|
||
|
|
||
|
return done;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
exports.default = AliyunSMSClient;
|