怎么利用NodeJS发送视频短信

news2024/9/17 7:26:24

随着5G时代的来临,企业的数字化转型步伐日益加快,视频短信作为新兴的数字营销工具,正逐步展现出其大的潜力。视频群发短信以其独特的形式和内容,将图片、文字、视频、声音融为一体,为用户带来全新的直观感受,为企业营销注入新的活力。

支持免费对接试用乐讯通PaaS平台 找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件|群发短信平台|乐讯通PaaS平台icon-default.png?t=O83Ahttp://yun.loktong.com/login/register/0c61bafb77 

const http = require('http');
const crypto = require('crypto');
const querystring = require('querystring');
const fs = require('fs');
const encodingConvert = require('encoding');

//参数
let url = "http://www.lokapi.cn/smsUTF8.aspx"
let rece = "json"
let username = "******"
let password = "123456"
let token = "333293sd"

let passwd = md5(password);
let timestamp = Date.now();
let body = "action=sendimagetext&username=" + username + "&password=" + passwd + "&token=" + token + "&timestamp=" + timestamp;
let sign = md5(body);

//发送帧

//文字
let content = '祝你生日快乐';
let buff = Buffer.from(content, 'utf8');
let resultBuffer = encodingConvert.convert(buff, "GBK", "UTF8");
let base64Content = resultBuffer.toString('base64');

//图片
let path = 'D:\\我的文档\\Pictures\\d2e10cb3ac49dc63d013cb63ab6ca7cd.jpg';
let ext = 'jpg';//图片后缀
let base64str = base64_encode(path);
let message = 'txt|' + base64Content + ',' + ext + '|' + base64str + ';';
message = message.replace('%', '%25');
message = message.replace('&', '%26');
message = message.replace('+', '%2B');

// 用于请求的选项
let contents = querystring.stringify({
    "action": "sendimagetext",
    "username": username,
    "password": passwd,
    "token": token,
    "timestamp": timestamp,
    "sign": sign,
    "rece": rece,
    "mobile": '17712345678',
    "title": '祝福短信',
    'message': message
});

let options = {
    host: 'localhost',
    port: 59414,
    path: '/smsUTF8.aspx',
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': contents.length
    }
}

let req = http.request(options, function (res) {
    res.setEncoding('utf8');
    res.on('data', function (data) {
        console.log("data:", data);   //一段html代码
    });
});

req.write(contents);
req.end;

function md5(data) {
    // 以md5的格式创建一个哈希值
    let hash = crypto.createHash('md5');
    return hash.update(data).digest('hex').toUpperCase();
}

function base64_encode(file) {
    var bitmap = fs.readFileSync(file);
    return Buffer.from(bitmap, 'utf8').toString('base64');
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2116386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单片机DMA原理及应用详解(上篇)(附工程源码)

这篇文章详细介绍单片机的DMA原理和应用范例。希望我的分享能给你带来不一样的收获! 目录 一、DMA简介 二、DMA原理 三、DMA中断 1. DMA中断的工作原理 2. DMA中断的优点 3. DMA中断的配置和处理 4. 应用场景 四、结语 一、DMA简介 1、DMA(D…

数据分析训练模型后输出模型评估报告

数据分析训练模型后输出模型评估报告 1、模型评估指标 1.1、概念: A:n个正样本,检测到是真值的数量 B:m个负样本,检测到是真值的数量 C:n个正样本,检测到假值的数量 D:m个负样本,检测到假值的数量 1.2、准确率(Accuracy) 正确预测的样本数量与总样本数量的比值。…

轨迹规划-B样条

B样条究竟是干啥的?白话就是给出一堆点,用样条的方式,给这些点连接起来,并保证丝滑的。 同时B样条分为准均匀和非均匀,以下为准均匀为例。 参考链接1:https://zhuanlan.zhihu.com/p/50626506https://zhua…

IP宿主信息在不同领域的广泛应用

在网络世界中,IP地址作为网络设备的唯一标识,扮演着至关重要的角色。而IP宿主信息,通过IP与POI/AOI信息关联,能够帮助用户了解特定IP地址所属的详细信息。本文将深入探讨IP宿主信息在不同领域的广泛应用。 什么是IP宿主信息&…

汽车功能安全--TC3xx之PBIST、MONBIST

目录 1.PMS 电源监控速览 2.PBIST 3.MONBIST 4.小结 1.PMS 电源监控速览 英飞凌TC3xx芯片的四种硬件机制,分别是: PMS:PBIST: Power Built-in Self Test. MCU:LBIST: Logic Built-in Self Test. PMS:MONBIST: Monitor Built-in Self Test. VMT:MBI…

嵌入式基础1-模拟电路技术-3.放大电路

1. 基本放大电路 1. 放大概念与放大电路性能指标 2. 基本共射放大电路工作原理 3. 放大电路的分析方法 阻容耦合 4.案例 2. 多级放大电路 1. 多级放大电路的耦合方式 2. 多级放大电路动态分析 3. 差分放大电路 3. 集成运算放大电路 4. 放大电路的反馈 1. 反馈的基本概念…

云计算第四阶段----CLOUD 01-03

CLOUD Day01 一、虚拟化平台搭建 虚拟化技术产品介绍 #黄线标注的,都是比较主流且常用的虚拟化平台。 虚拟化与云计算的关系 虚拟化是一种技术,它允许在单个物理服务器上创建和运行多个虚拟机(VMs),每个虚拟机都有其…

二叉树的相关选择题和基本方法(持续更新)

二叉树相关选择题和基本方法 选择题1选择题2选择题3选择题4选择题5选择题6选择题7选择题8选择题9选择题10选择题11选择题12选择题13选择题14选择题15选择题16选择题17选择题18选择题19选择题20选择题21选择题22实现二叉树的基本操作查询二叉树当中节点的个数遍历思想子问题思想…

[数据集][图像分类]熊分类数据集309张5类别黑熊泰迪北极熊等

数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):309 分类类别数:5 类别名称:["black","grizzly","panda","polar","teddy"] 每个类别图…

大数据之Flink(五)

15、Flink SQL 15.1、sql-client准备 启用Hadoop集群(在Hadoop100上) start-all.sh启用yarn-session模式 /export/soft/flink-1.13.0/bin/yarn-session.sh -d启动sql-client bin/sql-client.sh embedded -s yarn-sessionsql文件初始化 可以初始化模式、环境(流/批…

BUUCTF(34)特殊的 BASE64

使用pycharm时,如果想把代码撤销到之前的状态可以用 Ctrlz 如果不小心撤销多了,可以用 CtrlShiftZ 还原, 别傻傻的重新敲了 BUUCTF在线评测 (buuoj.cn) 查看字符串,想到base64的变表 这里用的c的标准程序库中的string&#xff0…

JS_循环结构

目录标题 while结构for循环foreach循环 while结构 几乎和JAVA一致 代码 <script> /* 打印99 乘法表 */ var i 1; while(i < 9){ var j 1; while(j < i){ document.write(j"*"i""i*j" "); j; } document.write("<hr/…

《机器学习》数据预处理 删除、替换、填充 案例解析及实现

目录 一、了解数据清洗 1、什么是数据清洗 2、数据清洗步骤 1&#xff09;缺失值处理 2&#xff09;异常值处理 3&#xff09;重复值处理 4&#xff09;格式修正 5&#xff09;数据一致性检查 6&#xff09;数据类型转换 二、数据清洗用法 1、有如下文件内容 2、完…

前向渲染路径

1、前向渲染路径处理光照的方式 前向渲染路径中会将光源分为以下3种处理方式&#xff1a; 逐像素处理&#xff08;需要高等质量处理的光&#xff09;逐顶点处理&#xff08;需要中等质量处理的光&#xff09;球谐函数&#xff08;SH&#xff09;处理&#xff08;需要低等质量…

线程的四种操作

所属专栏&#xff1a;Java学习 1. 线程的开启 start和run的区别&#xff1a; run&#xff1a;描述了线程要执行的任务&#xff0c;也可以称为线程的入口 start&#xff1a;调用系统函数&#xff0c;真正的在系统内核中创建线程&#xff08;创建PCB&#xff0c;加入到链…

C++17: 用折叠表达式实现一个IsAllTrue函数

前言 让我们实现一个 IsAllTrue 函数&#xff0c;支持变长参数&#xff0c;可传入多个表达式&#xff0c;必须全部计算为true&#xff0c;该函数才返回true。 本文记录了逐步实现与优化该函数的思维链&#xff0c;用到了以下现代C新特性知识&#xff0c;适合对C进阶知识有一定…

2025最新:如何打造公司财务管理系统?Java SpringBoot实现,一步到位管理企业财务!

✍✍计算机毕业编程指导师** ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java…

STM32F407VET6开发板RT-Thread的移植适配

前言 最近购买了一块 STM32F407VET6开发板【魔女】&#xff0c;http://www.stm32er.com/ 通过原理图了解到&#xff0c;开发板板载 CMSIS-DAP 调试下载口&#xff0c;例程部分大部分以裸机程序为主 目标&#xff1a;打算移植适配到 RT-Thread 适配 RT-Thread RT-Thread 支持…

基于准静态自适应环型缓存器(QSARC)的taskBus万兆吞吐实现

文章目录 概要整体架构流程技术名词解释技术细节1. 数据结构2. 自适应计算队列大小3. 生产者拼接缓存4. 高效地通知消费者 小结1. 性能表现情况2. 主要改进3. 源码和发行版 概要 准静态自适应环形缓存器&#xff08;Quasi-Static Adaptive Ring Cache&#xff09;是taskBus用于…

【Python报错已解决】 No Python at ‘C:\Users...\Python Python39\python.exe’

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一&#xff1a;检查Python安装路径2.2 …