CognitoとApiGatewayの統合に問題があります。 最初に私はCognitoでサインインします。問題はありません。私はすべてのトークンを取得します。 その後、私はAPIゲートウェイを呼び出す必要があります。私はAndroid用に自動生成されたSDKを使用しています。 私はここの例に従っています:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk-android.htmlしかし、私はいつも同じエラーが発生します。Android上のAWS Api GatewayとCognito - エラー401
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
context,
CognitoConstants.IDENTITY_POOL_ID,
CognitoConstants.REGION);
String token = cognitoUserSession.getIdToken().getJWTToken();
Map<String, String> logins = new HashMap<>();
logins.put(CognitoConstants.LOGIN_MAP_KEY, token);
credentialsProvider.setLogins(logins);
ApiClientFactory factory = new ApiClientFactory()
.credentialsProvider(credentialsProvider);
client = factory.build(ExampleAPIClient.class);
client.exampleApi1AccountsGet();
結果は次のとおりです。
ApiClientException com.amazonaws.mobileconnectors.apigateway.ApiClientException: {"message":"Unauthorized"}
(Service: BancarAPIClient; Status Code: 401; Error Code: null; Request ID: 3679cd4b-eefc-11e6-9d00-f99040a8ed67)
ありがとうございました。あなたは正しいです、私はCognito Identity Poolの資格を設定していました。 実際、私はちょうどUserPoolトークンでヘッダーを設定する必要があったが、生成されたSDKの柔軟性があまり高くないので、どのように見つけられなかったか。 バックエンドに問題があり、設定が間違っていることが判明しました。修正された後、生成されたSDKは、 (@パラメータ( name = "Authorization"、 location = "header")のメソッドでこのパラメータを追加しました とvoila! –