Amazon SNS一直使用last字符串发送消息



目前我正在使用Springboot和kotlin使用AWS SNS向越南的人发送短信。
但是,它一直发送消息,最后一个字符串在我的消息内容。

@Bean
fun snsClient(): AmazonSNS {
val credentials = BasicAWSCredentials(accessKey, secretKey)
val snsClient = AmazonSNSClient.builder()
.withRegion(Regions.AP_SOUTHEAST_1)
.withCredentials(AWSStaticCredentialsProvider(credentials))
.build()
return snsClient
}
private fun sendMsg(snsClient: AmazonSNS, msg: String, phoneNumber: String) {
try {
val req = PublishRequest()
req.message = msg
req.phoneNumber = phoneNumber
val res = snsClient.publish(req)
System.out.println(res.sdkResponseMetadata)
} catch (e: AmazonSNSException) {
e.printStackTrace()
}
}
有谁能帮我解决这个问题吗?根据aws文档,它告诉我使用PublishRequest().builder()。但是,当我尝试使用builder()方法时,在PublishRequest()中没有builder()方法。

使用Amazon SNS发送消息与AWS SDK for Kotlin,使用以下代码:

package com.kotlin.sns
import aws.sdk.kotlin.services.sns.SnsClient
import aws.sdk.kotlin.services.sns.model.PublishRequest
import aws.sdk.kotlin.services.sns.model.SnsException
import kotlin.system.exitProcess

suspend fun main(args:Array<String>) {
val usage = """

Usage: 
<message> <phoneNumber>
Where:
message - the message text to send.
phoneNumber - the mobile phone number to which a message is sent (for example, +1XXX5550100). 
"""
if (args.size != 2) {
println(usage)
exitProcess(0)
}
val message = args[0]
val phoneNumber = args[1]
val snsClient = SnsClient({ region = "us-east-1" })
pubTextSMS(snsClient, message, phoneNumber)
snsClient.close()
}

suspend fun pubTextSMS(snsClient: SnsClient, messageVal: String?, phoneNumberVal: String?) {
try {
val request = PublishRequest {
message = messageVal
phoneNumber = phoneNumberVal
}
val result = snsClient.publish(request)
println("${result.messageId} message sent.")
} catch (e: SnsException) {
println(e.message)
snsClient.close()
exitProcess(0)
}
}

要了解如何使用Kotlin的AWS SDK启动和运行,请参阅开始使用Kotlin的SDK。

以下是亚马逊SNS Kolin的例子:

Amazon SNS Kotlin代码示例

最新更新