C# AWS Unity 3D SDK(Cognito Sync 403禁止错误)

C# AWS Unity 3D SDK(Cognito Sync 403禁止错误),c#,amazon-web-services,unity3d,amazon-cognito,C#,Amazon Web Services,Unity3d,Amazon Cognito,我们正在使用Unity开发一款手机游戏,我们将使用AWS服务存储所有用户数据和游戏内容 我们已经构建了所有的集成并存档,以便与用于unity的AWS SDK集成,DynamoDB和S3按照预期工作,但是我们在CognitoStore方面遇到了一些问题 当我们调用_ds.Synchronize()或_syncManager.RefreshDatasetMetadataAsync()时,我们得到一个403禁止的错误 WebException:403禁止作为AmazonServiceException

我们正在使用Unity开发一款手机游戏,我们将使用AWS服务存储所有用户数据和游戏内容

我们已经构建了所有的集成并存档,以便与用于unity的AWS SDK集成,DynamoDB和S3按照预期工作,但是我们在CognitoStore方面遇到了一些问题

当我们调用_ds.Synchronize()或_syncManager.RefreshDatasetMetadataAsync()时,我们得到一个403禁止的错误

WebException:403禁止作为AmazonServiceException:403重新发布 禁止作为DataStorageException重新刷新:未能在中列出记录 数据集:帐户

简化政策:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "mobileanalytics:PutEvents",
        "cognito-sync:*"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
完整保单日期:

代码:

不确定我们是否遗漏了什么,但我已经花了3天的时间搜索并试图修复这个问题。如果你们能帮助解决这个问题,我将不胜感激

你们有谁知道如何解决这个问题吗

注意:我们在Unity 3D示例项目中遇到了相同的问题

2015年2月12日更新 已将SDK更新为1.0.1,但收到错误400错误请求。仍在努力让它发挥作用


谢谢

刚刚在一个使用Windows7的虚拟机上做了一个测试,项目/设置都是一样的,而且很有效

我在我的mac电脑上重复了这个测试,它成功了

目前还不确定问题出在哪里,但使用1.0.1版aws Unity SDK在Windows和Mac上再次打开同一个项目是可行的。也许是统一缓存之类的问题。但它起作用了


谢谢

不确定它是否有用,但源代码是:
try{CognitoSyncClientManager.init();_syncManager=CognitoSyncClientManager.CognitoSyncManagerInstance;}catch(异常ex){Debug.LogException(ex);return;}dsAccount=_syncManager.OpenOrCreateDataset(“帐户”)_dsAccount.Put(“测试”、“1”)_dsAccount.Synchronize()一些可能对我们有帮助的附加信息:1)您使用的是经过身份验证的访问还是未经身份验证的访问?2) 你确定你的CognitoCredentials工作正常吗?3) 您提到S3和DynamoDB正在工作,但不包括在上述策略中。你确定这就是你正在使用的吗?@BobKinney谢谢你的回复。1) 未经认证,但展位可与其他服务合作。2) 我可以看到我用来测试的所有身份,也可以访问DynamoDb和S3。3) 我使用IAM完全访问S3和DynamoDB,我只是简化了测试,完整策略是:
try {
CognitoSyncClientManager.init();
_syncManager = CognitoSyncClientManager.CognitoSyncManagerInstance;                                     
} catch (Exception ex) {
Debug.LogException (ex);
return;
}

_dsAccount = _syncManager.OpenOrCreateDataset ("Account");
_dsAccount.Put ("test", "1");
_dsAccount.Synchronize ();