Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >非常古老的系统,嵌入腾讯云短信碰到的问题,我哪做错了?

非常古老的系统,嵌入腾讯云短信碰到的问题,我哪做错了?

提问于 2021-08-16 07:02:40
回答 0关注 0查看 95

wendell,您好:

先说声谢谢,主要怕您没有耐心看到最后,我觉得您能看就很高兴了。

首先吐槽一句,通过腾讯云助手来找到一个人来回答我的疑问,是一件困难的事情,所以在网络上找到相关的文件,然后才找到您,希望您能有空告诉我,在哪出现问题了。第二再吐槽一句,API帮助文档写的,那真的是书呆子写的东西,我是看不懂。

言归正传,我碰到如下问题:

我需要在一个非常古老的系统(vb6.0)里面嵌入腾讯云短信的功能,就是事件触发了,给某个手机发一封短信即可,需求很简单,我仔细看了您们的帮助文档,基本上了解了一个大概,我先说一下我理解的如何使用这个API:

1)获得必要的各种key,id等信息:

这些我已经获得了,我申请的SignName=PlusStock,我已经通过API Exproler成功的,给我的手机发送了测试短信,应该是我已经具备了发短信的条件。

2) 获得签名串

通过HMAC-SHA1算法,对签名串进行转换,我使用的是V3.0 版本一,拼装签名串格式类似于下面的,除了Timestamp和Nonce两个参数需要每次变化外,其它的我把最关键改动了一些:

POSTsms.tencentcloudapi.com/?Action=SendSms&Language=zh-CN&Nonce=2741&PhoneNumberSet.0=+8613901xxxxx&Region=ap-

beijing&SecretId=AKIDZy7yYrte7KGuHMBjzyh9JCpXXXXXXX&SignName=PXXXtock&SmsSdkAppId=14XXXX5445&TemplateId=9XXXX05&TemplateParamSet.0=xxxx&TemplateParamSet.1=yyyy&Timestamp=162XXXX0725&Version=2021-01-11

最后得到类似下面的签名字符串:

P02NbSHN2zA1PeAJhxD04J53rhU=

编码后:

P02NbSHN2zA1PeAJhxD04J53rhU%3D

我在本地生成的签名串,与API Explorer中的对照,一样的,说明我生成签名字符串功能是对的。

3)把签名串,与上面其它的参数拼装,通过post或者get方法,发到主机:https://sms.tencentcloudapi.com/,然后服务器返回给我一个json格式的字符串,告诉我成功,或者不成功。

我现在获得的回复是:{"Response":{"Error":{"Code":"AuthFailure.SignatureFailure","Message":"请求签名验证失败,请检查您的签名计算是否正确。"},"RequestId":"a77c7f83-ad4a-45ef-a109-d90793da58c0"}}

我的疑问: 1)我对如何调用API理解是否有误?是不是在post或者get方法之前,只要把签名串加进去,组装成如下形式的body即可?

Action=SendSms&Language=zh-CN&Nonce=2741&PhoneNumberSet.0=+8613901xxxxx&Region=ap-beijing&SecretId=AKIDZy7yYrte7KGuHMBjzyh9JCpXXXXXXX&SignName=PXXXtock&SmsSdkAppId=14XXXX5445&TemplateId=9XXXX05&TemplateParamSet.0=xxxx&TemplateParamSet.1=yyyy&Timestamp=162XXXX0725&Version=2021-01-11&Signature=ytVhc4K1qnDAxyM51jF7%2F6YXHWs%3D

2)我的源代码可能太老了,可能不认识,我大概说一下就是:

Dim objXML As New MSXML2.XMLHTTP

'打开链接对象信息

objXML.Open "POST", sHost, False //sHost=https://sms.tencentcloudapi.com/

'设置头部

objXML.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"

'发送请求,此处body,就是上面的1)中的内容,做了utf-8转换,最后结果就是1)中的样子

sBody = StrConv(EncodeToBytes(sQueryString), vbUnicode)

objXML.Send sBody

If objXML.Status <> 200 Then '判断文档是否已经解析完,以做客户端接受返回消息

'失败

sResult = ""

Else

'成功

'返回文本内容的信息

sResult = objXML.ResponseText

End If

'关闭对象

Set objXML = Nothing

'输出结果

debug.print sResult

回答

成为首答用户。去 写回答
相关文章
Android VideoView播放视频
起初播放本地视频也是如此,但后来发现是因为权限的原因,所以需要在AndroidManifest.xml中加入
SingYi
2022/07/13
3.6K0
Android VideoView播放视频
Android VideoView播放视频
Android 利用自带VideoView控件播放视频 Activity public class Activity01 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.
阳光岛主
2019/02/19
1.4K0
android采用videoView播放视频(包装)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117001.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/06
4470
Android开发之使用VideoView实现视频的横屏播放、去除边框
做项目需要播放一个引导视频,本以为很简单,结果动手时发现总有瑕疵,幸好有度娘,现把收获总结如下:
张拭心 shixinzhang
2022/11/30
1.4K0
使用VideoView做个实用的视频播放器
最终效果图 最终效果图 前言 这里用VideoView写一个播放器, 可以横竖屏, 可以选文件, 可以暂停, 可以快进后退, 可以进度条拖动, 可以触屏调节音量. 来看看怎么实现的吧! 布局文件
sean_yang
2018/09/04
1.4K0
使用VideoView做个实用的视频播放器
Android流媒体播放之VideoView
Android支持播放网络上的视频。在播放网络上的视频时,牵涉到视频流的传输,往往有两种协议,一种是HTTP,一种是RTSP。这两种协议最 大的不同是,HTTP协议,不支持实时流媒体的播放,而RTSP协议就支持。Android中自带的播放器,以及VideoView等都支持上述两种协 议,因此,可以直接播放网络上的视频,唯一不同的就是URI。 Android当前支持两种协议来传输视频流一种是Http协议,另一种是RTSP协议 Http 协议最常用于视频下载等,但是目前还不支持边传输边播放的实时流媒体 同时,在
非著名程序员
2018/02/01
2.5K0
Android流媒体播放之VideoView
EasyGBS使用https播放视频流出现无法加载播放的情况排查及处理
由于EasyGBS在不断进行改进,得到了很多用户的好评和客户的信任,我们在一年前就已经支持了https的配置。HTTPS为非对称加密,即加密和解密都通过不同的钥匙来进行,给传输数据增加了更加严密的保护。
TSINGSEE青犀视频
2021/08/30
1.1K0
EasyGBS使用https播放视频流出现无法加载播放的情况排查及处理
此视频无法播放0xc00d36c4_视频播放失败代码-30
相信很多用户都遇到过视频无法播放的问题。比如将重要视频从旧电脑拷到U盘上,使用另一台电脑播放时,提示视频播放错误代码0xc00d36c4,不支持该视频播放。其实,视频无法播放的问题是很常见的,不少用户在电脑上连接相机或者手机后播放视频,也会提示0xc00d36c4。出现这样的问题要怎么解决,怎么才能修复该视频文件使其正常播放?
全栈程序员站长
2022/11/11
3.2K0
此视频无法播放0xc00d36c4_视频播放失败代码-30
Android VideoView 视频播放完成例子(进度条,播放时间,暂停,拖动)
中国广东省深圳市望海路半岛城邦三期 518067 +86 13113668890 <netkiller@msn.com>
netkiller
2018/11/09
14.9K0
EasyCVR设备录像出现无法播放现象的问题修复
EasyCVR是我们接入协议最广泛的视频管理平台,除了标准协议GB28181、RTSP/Onvif、RTMP等,还支持厂家的私有协议与SDK,如海康Ehome、海康SDK、大华SDK等,同时我们也还在积极拓展其他主流厂家的SDK,如宇视SDK、华为SDK等。平台支持通过GB/T28181、Ehome协议从海康、大华、宇视等摄像头、网络硬盘录像机NVR等设备中,按设备、通道、日期获取对应录像文件进行录像的检索与回放,无需安装各个安防厂商的视频播放插件。
TSINGSEE青犀视频
2022/07/01
5780
Android 列表视频
正常的列表视频在视频加载完成之前肯定是要显示图片,视频加载好后在播放视频,ijk中没有发现视频有缩略图的选项,所以布局使用一个帧布局,用张图片把VideoView盖住,当视频加载好后再把图片去掉(为什么不是VideoView盖住图片,如果这样的话再把VideoView展示出来的时候会有一个黑屏,比较影响体验)
SakuraTears
2023/02/01
9850
点击加载更多

相似问题

player.play(videos);如何让用户点击播放?

1629

关于视频号视频突然无法正常播放的问题?

0529

视频都无法播放?

059

互动白板视频播放无法同步播放?

1460

【企业微信 app】华为手机视频播放问题?

1311
相关问答用户
擅长3个领域
腾讯云TDP | 高级后端开发工程师擅长3个领域
萃橙科技 | 合伙人擅长4个领域
高级数据分析师擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档