aws pinpoint update-apns-sandbox-channel命令导致:缺少凭据

时间:2019-02-14 23:14:05

标签: amazon-web-services apple-push-notifications aws-cli aws-pinpoint

aws --version aws-cli/1.16.76 Python/2.7.10 Darwin/16.7.0 botocore/1.12.66

我正在尝试以编程方式将APNS_SANDBOX频道添加到精确的应用程序。我可以通过精确的控制台成功完成此操作,但不能使用aws cli或lambda函数作为最终目标。只能通过CodePipeline更改测试/产品环境,但是出于测试目的,我尝试使用aws cli来实现。

我尝试了aws cli(使用根凭据)和lambda函数-都导致以下错误:

An error occurred (BadRequestException) when calling the UpdateApnsSandboxChannel operation: Missing credentials

我尝试将UpdateApnsSandboxChannel json对象中的“证书”字段设置为.p12证书文件的路径,并尝试使用从openssl工具获取的字符串值。

今天,我与aws支持人员合作,在尝试调试几个小时后,他们无法解决问题。他们说,他们将向精确团队发送电子邮件,但他们尚无何时作出回应的预计到达时间。

谢谢

1 个答案:

答案 0 :(得分:0)

我最终使它成功工作-这就是失败的原因:

我最初使用以下请求对象进行cli调用,因为这是文档中包含的内容:


aws pinpoint update-apns-sandbox-channel --application-id [physicalID]  --cli-input-json file:///path-to-requestObject.json
{
    "APNSSandboxChannelRequest": {
        "BundleId": "com.bundleId.value", 
        "Certificate":"P12_FILE_PATH_OR_CERT_AS_STRING", 
        "DefaultAuthenticationMethod": "CERTIFICATE", 
        "Enabled": true, 
        "PrivateKey":"PRIVATEKEY_FILE_PATH_OR_AS_STRING",
        "TeamId": "",
        "TokenKey": "",
        "TokenKeyId": ""
    }, 
    "ApplicationId": "Pinpoint_PhysicalId"
}

玩了一些之后,我通过删除BundleId,TeamId,TokenKey和TokenKeyId使它起作用。我相信使用p8证书时需要这些字段。


{
    "APNSSandboxChannelRequest": {
        "Certificate":"P12_FILE_PATH_OR_CERT_AS_STRING", 
        "DefaultAuthenticationMethod": "CERTIFICATE", 
        "Enabled": true, 
        "PrivateKey":"PRIVATEKEY_FILE_PATH_OR_AS_STRING"      
    }, 
    "ApplicationId": "Pinpoint_PhysicalId"
}