小编Bla*_*ock的帖子

无效参数:发布到 AWS SNS arn 端点时主题名称错误

在 Java 中,我尝试使用以下代码将 AWS SNS 消息发布到特定的 ARN 端点:

import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sns.model.PublishRequest;
import com.amazonaws.services.sns.model.PublishResult;

...

AmazonSNS snsClient = new AmazonSNSClient(new BasicAWSCredentials(System.getenv("AWS_KEY"), System.getenv("AWS_SECRET")));

snsClient.setRegion(Region.getRegion(Regions.US_EAST_1));

String message = "{\"APNS_SANDBOX\":\"{\\\"aps\\\":{\\\"type\\\":\\\"XXX\\\",\\\"email\\\":\\\"XXX@gmail.com\\\",\\\"alert\\\":\\\"some alert\\\"}}\"}";

PublishResult pr = snsClient.publish(new PublishRequest("arn:aws:sns:us-east-1:XXX:endpoint/APNS_SANDBOX/XXX/XXX-XXX-XXX-XXX", message));
Run Code Online (Sandbox Code Playgroud)

我一直收到以下错误消息:

Invalid parameter: Topic Name (Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter; Request ID: XXX

对此有什么想法吗?

我可以毫无问题地从 SNS 控制台发布到 ARN 端点,并且我尝试了不同的消息变体

java amazon-web-services amazon-sns

8
推荐指数
2
解决办法
9097
查看次数

SwiftUI View Switch 语句导致 TabView 重置

我在 SwiftUI 视图中使用 switch 语句:

struct OnOffSwitchView: View {
    
    @ObservedObject var vm = ViewModel()
    
    var body: some View {
        switch vm.state {
        case .on:
            OnView(vm: vm)
        case .off:
            OffView(vm: vm)
        }
    }
}

@MainActor class ViewModel: ObservableObject {
    @Published var state: State = .on

    enum State {
        case on
        case off
    }
}
Run Code Online (Sandbox Code Playgroud)

其中子视图正在更改 ViewModel 状态(打开和关闭相同),以便切换条件更新,呈现新视图:

struct OnView: View {
    
    @ObservedObject var vm: ViewModel
    
    var body: some View {
        VStack {
            Text("Welcome to On")
            Button { vm.state = .off } …
Run Code Online (Sandbox Code Playgroud)

iphone ios swift swiftui swiftui-tabview

4
推荐指数
1
解决办法
734
查看次数