欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 阿里云发送国内短信怎样编程

阿里云发送国内短信怎样编程

2024/10/24 16:22:06 来源:https://blog.csdn.net/humors221/article/details/139544193  浏览:    关键词:阿里云发送国内短信怎样编程

1.准备:阿里云注册,新建用户并授权,获取appkey和secret,开通短信服务,申请资质签名模板,短信服务右下角openapi查看文档和下载实例,在线客服咨询遇到的问题

2.依赖引入:

        <dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>2.0.24</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>tea-openapi</artifactId><version>0.3.2</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>tea-console</artifactId><version>0.0.1</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>tea-util</artifactId><version>0.2.21</version></dependency>

3.代码:

public com.aliyun.dysmsapi20170525.Client createClient() throws Exception {// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。// 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。.setAccessKeyId("appkey")// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。.setAccessKeySecret("secret");// Endpoint 请参考 https://api.aliyun.com/product/Dysmsapiconfig.endpoint = "dysmsapi.aliyuncs.com";return new com.aliyun.dysmsapi20170525.Client(config);}public void sendNationSms(String... args_) {try {java.util.List<String> args = java.util.Arrays.asList(args_);com.aliyun.dysmsapi20170525.Client client = createClient();com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest();sendSmsRequest.setSignName(args.get(0));sendSmsRequest.setPhoneNumbers(args.get(1));sendSmsRequest.setTemplateCode(args.get(2));sendSmsRequest.setTemplateParam(args.get(3));com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();com.aliyun.dysmsapi20170525.models.SendSmsResponse resp = client.sendSmsWithOptions(sendSmsRequest, runtime);com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));} catch (TeaException error) {// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。// 错误 messageSystem.out.println(error.getMessage());// 诊断地址System.out.println(error.getData().get("Recommend"));com.aliyun.teautil.Common.assertAsString(error.message);} catch (Exception _error) {TeaException error = new TeaException(_error.getMessage(), _error);// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。// 错误 messageSystem.out.println(error.getMessage());// 诊断地址System.out.println(error.getData().get("Recommend"));com.aliyun.teautil.Common.assertAsString(error.message);}}

4.疑难解答:

RAM_PERMISSION_DENY 是阿里云RAM(Resource Access Management)中的一个权限状态,表示RAM用户在尝试访问某个资源时被拒绝,通常是由于该用户没有足够的权限。RAM是阿里云提供的权限管理服务,它允许您控制不同用户、角色对资源的访问权限。
当RAM用户尝试执行某个操作时,如果其不具备执行该操作所需的权限,服务会返回RAM_PERMISSION_DENY的错误码或错误信息。这可能是因为:
1.	权限不足:RAM用户没有被授予执行该操作的权限,可能是由于角色权限设置不正确,或者没有明确赋予该用户相应的权限。
2.	资源权限问题:用户可能对特定资源没有访问权限,这需要检查资源的权限策略,确保用户被允许访问。
3.	策略冲突:如果用户同时拥有多个策略,可能存在一个策略允许访问,而另一个策略拒绝访问,导致权限冲突。
4.	MFA要求:如果服务要求使用多因素认证(MFA)而用户未启用或未正确使用,也可能导致访问被拒绝。
要解决RAM_PERMISSION_DENY问题,需要检查和调整用户的权限策略,确保策略中包含了允许执行所需操作的语句。您可以登录阿里云控制台,通过RAM服务管理用户权限,或者联系管理员进行权限检查和配置。详细步骤和配置信息,可以参考阿里云官方文档管理RAM用户权限。"SMS service is not activated" 表示短信服务未激活,这意味着您的阿里云账号尚未开启或配置短信服务。要解决这个问题,您可以按照以下步骤操作:
1.	确认服务开通:登录阿里云控制台,检查是否已经开通了短信服务。如果没有,您需要前往短信服务页面进行开通。
2.	账户权限检查:如果您是RAM用户,确保您的权限策略允许使用短信服务。如果权限不足,需要联系管理员为您添加相关权限。
3.	服务状态检查:在开通短信服务后,检查服务状态是否正常,是否存在欠费、服务暂停等情况。
4.	签名和模板审核:确保您的短信签名和模板已经审核通过。未通过审核的签名或模板将无法使用。您可以在短信服务控制台的签名管理或模板管理页面查看审核状态。
5.	API调用检查:如果使用API发送短信,确保您使用了正确的AccessKey和AccessKey Secret,并且签名和模板代码正确无误。
请根据上述步骤进行检查和配置,若问题依然存在,请详细描述您的操作过程和遇到的具体问题,以便提供更精确的解决方案。创建AccessKey
更新时间:2024年5月17日 09:49:14
本文为您介绍如何创建RAM用户和阿里云账号(主账号)的访问密钥(AccessKey)。
什么是AccessKey
访问密钥AccessKey(简称AK)是阿里云提供给用户的永久访问凭据,一组由AccessKey ID和AccessKey Secret组成的密钥对。
•	AccessKey ID:用于标识用户。
•	AccessKey Secret:是一个用于验证您拥有该AccessKey ID的密码。
AccessKey ID和AccessKey Secret根据算法由访问控制(RAM)生成,阿里云对AccessKey ID和AccessKey Secret的存储及传输均进行加密。
AccessKey不用于控制台登录,用于通过开发工具(API、CLI、SDK、Terraform等)访问阿里云时,发起的请求会携带AccessKey ID和AccessKey Secret加密请求内容生成的签名,进行身份验证及请求合法性校验。
重要
•	阿里云账号(主账号)默认拥有当前账号下所有云资源的Administrator权限,且无法修改。阿里云账号(主账号)的AccessKey泄露会威胁该账号下所有资源的安全。为保证账号安全,强烈建议您不要给阿里云账号(主账号)创建AccessKey,建议您创建专用于API访问的RAM用户并创建对应的AccessKey,完成最小化授权后,通过编程的方式访问阿里云资源。
•	不要将AccessKey ID和AccessKey Secret保存到工程代码里,避免AccessKey泄露。更多关于凭据的安全使用建议,请参见凭据的安全使用方案。
创建RAM用户的AccessKey
前提条件
您可以使用以下账号创建RAM用户的AccessKey:
•	阿里云账号(主账号)。
•	RAM管理员(拥有AliyunRAMFullAccess权限的RAM用户)。
•	允许自主管理AccessKey的RAM用户。关于如何设置自主管理AccessKey的详情,请参见管理RAM用户安全设置。
使用限制
•	RAM用户的AccessKey Secret只在创建时显示,不支持查看,请妥善保管。如果AccessKey泄露或丢失,请删除并创建新的AccessKey。
•	每个RAM用户最多允许创建2个AccessKey。
操作步骤
1.	登录RAM控制台。
2.	在左侧导航栏,选择身份管理 > 用户。
3.	在用户页面,单击目标RAM用户名称。
4.	在认证管理页签下的AccessKey区域,单击创建AccessKey。5.	根据界面提示完成安全验证。
6.	在创建AccessKey对话框,查看AccessKey ID和AccessKey Secret。
您可以单击下载CSV文件,下载AccessKey信息。单击复制,复制AccessKey信息。7.	单击确定。
创建阿里云账号(主账号)的AccessKey
使用限制
•	2023年11月20日起阿里云账号(主账号)AccessKey不支持创建后再次查看AccessKey Secret。2023年7月5日前创建的阿里云账号(主账号)AccessKey尚未签署知情同意书的,控制台提供最后一次保存和下载的功能,确认保存后不能再次查看。
•	每个阿里云账号(主账号)最多允许创建5个AccessKey。
操作步骤
1.	使用阿里云账号(主账号)登录阿里云控制台。
2.	将鼠标悬浮在右上方的账号图标上,单击AccessKey管理。3.	在安全提示对话框,阅读安全提示信息,然后单击继续使用AccessKey。
4.	在AccessKey页面,单击创建AccessKey。5.	根据界面提示完成安全验证。
6.	在创建AccessKey对话框,查看AccessKey ID和AccessKey Secret。
您可以单击下载CSV文件,下载AccessKey信息。单击复制,复制AccessKey信息。7.	选中我已保存好AccessKey Secret。
8.	单击确定。
相关文档
•	不使用主账号AccessKey
•	定期轮转RAM用户AccessKey
•	清理RAM用户的闲置AccessKey
•	RAM用户不能同时启用两个AccessKey
•	访问密钥(AccessKey)常见问题
•	凭据的安全使用方案
•	使用访问凭证访问阿里云OpenAPI最佳实践
•	AccessKey泄露处理方案开通阿里云短信服务,您需要拥有一个阿里云账号并完成实名认证。然后,您可以按照以下步骤操作:
1.	登录阿里云控制台:首先访问阿里云官网,使用您的账号登录。
2.	进入短信服务控制台:在顶部搜索框中输入“短信服务”或直接访问短信服务控制台。
3.	开通服务:如果您是首次使用,系统会引导您开通短信服务。点击“立即开通”或相应按钮,按照页面提示完成开通流程。
4.	获取AccessKey:开通服务后,您需要AccessKey来调用短信服务API。您可以:
•	查看AccessKey:访问AccessKey查看。
•	创建AccessKey:访问创建AccessKey。
5.	配置短信模板和签名:在控制台中,您需要创建短信签名和模板,这些是发送短信的前提。
6.	开始使用:完成以上步骤后,您就可以在您的应用程序中使用阿里云短信服务SDK来发送短信了。
请确保遵循阿里云的服务条款和相关的法律法规,以确保短信服务的合规使用。如果您在操作过程中遇到任何问题,可以随时联系阿里云客服获取帮助。国内短信接口使用 SendSms - 发送短信 SendBatchSms - 批量发送短信

(全文完)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com