Amazon Simple Email Service, Credential 的范围应该是正确的服务:'email'

  1. 第一步,我在 Cognito 中创建了一个身份池
  2. 允许访问未经身份验证的身份
  3. 使用以下配置添加了未经身份验证的角色。
    {
     "Version": "2012-10-17","Statement": [
     {
      "Effect": "Allow","action": [
        "cognito-sync:*","ses:SendEmail"
      ],"Resource": [
        "*"
       ]
      }
     ]
    }

然后在 Android Studio 中我为亚马逊添加了以下 SDK。

implementation 'com.amazonaws:aws-android-sdk-core:2.26.0'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.20.1'
implementation 'com.amazonaws:aws-android-sdk-ses:2.20.1'

在我像这样使用 cognito 初始化 Amazon SES 之后:

     val credentials = CognitoCachingCredentialsProvider(
            context,// CONTEXT
            "us-east-1:your_identify_pool",// IDENTITY POOL ID
            Regions.US_EAST_1 // REGION
        )
        
        val ses = AmazonSimpleEmailServiceclient(credentials)
        ses?.setRegion(Region.getRegion(Regions.US_EAST_1))
        ses?.endpoint = "email.us-east-1.amazonaws.com"

接下来使用 SES 客户端发送电子邮件:

 val request = SendEmailRequest(email.from,destination,message)
 ses.sendEmail(request)

当我运行这个时,我得到以下异常

com.amazonaws.AmazonServiceException: Credential should be scoped to 
correct service: 'email'. (Service: AmazonSimpleEmailService; Status 
Code: 403; Error Code: SignatureDoesnotMatch; Request ID: 5bd493a7-0184- 
49e6-bc03-5b95386d5b20)
dafeizi520 回答:Amazon Simple Email Service, Credential 的范围应该是正确的服务:'email'

我没有使用 cognito,而是使用凭据,但仍然无法正常工作,结果是 sdk 有问题,尝试使用不同的 sdk 版本并找到了正确的组合。

implementation 'com.amazonaws:aws-android-sdk-core:2.26.0'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.20.1'
implementation 'com.amazonaws:aws-android-sdk-ses:2.24.0'
本文链接:https://www.f2er.com/98905.html

大家都在问