1

错误:

此处的错误:可选(错误域=com.amazonaws.AWSJSONBuilderErrorDomain Code=4“序列化对象既不是有效的 json 对象也不是 NSData 对象:” UserInfo={NSLocalizedDescription=序列化对象既不是有效的 json 对象也不是 NSData 对象:})

代码:

import AWSLambda
import Foundation
struct AWSHelper{
let lambda = AWSLambda.default()
let APPLICATION_NAME = "MYAPPNAME"
init(){

}

func getFunctionName(funcName: String) -> String{
    return "\(funcName)_\(APPLICATION_NAME)"
}

func login(facebookID: String,cognitoID:String, callback:@escaping (Bool) -> Void){
    let req: AWSLambdaInvocationRequest = AWSLambdaInvocationRequest();
    req.invocationType = AWSLambdaInvocationType.requestResponse
    req.payload = ["cognitoID" : cognitoID, "facebookID" : facebookID]
    req.functionName = getFunctionName(funcName: "Login")

    lambda.invoke(req) { (response: AWSLambdaInvocationResponse?,error: Error?) in
        print("ERROR HERE: \(error)")
        let payload = response?.payload
        print("PAYLOAD HERE: \(payload)")
        callback(true)
    }

}
}

我查看了我的 lambda 日志,可以看到我什至没有调用该方法。我面临的问题是什么?我还有一个怀疑,它可能在这里是 cognito:AWS Cognito 集成 swift3 Refresh 提供 ResourceNotFoundException
但是如果我能够获得一个 identityID,我很困惑,出了什么问题?现在我想这可能是我的 lambda 调用。

4

1 回答 1

1

我不知道这是否会帮助你。查看您的调用请求,它缺少两项。ClientContext 和限定符。那些将是空的。

在 AWSSerialization 的 1292 处,它具有:

            [self failWithCode:AWSJSONBuilderInvalidParameter description:[NSString stringWithFormat:@"serialized object is neither a valid json Object nor NSData object: %@",serializedJsonObject] error:error];

请注意,在 : 之后,您应该会看到正在序列化的对象。在您的错误中,它是空的。

也许使用断点和回溯来查看它在做什么。

于 2016-11-06T06:37:30.390 回答