Android SDK SignerFactory создает исключение

Я создаю приложение для Android с помощью AWS Cognito и Polly. Приложение работало нормально до сегодняшнего дня, когда оно начало выдавать IllegalArgumentException в функции auth.SignerFactory.createSigner.

У меня есть следующий код:

mCredentialsProvider = new CognitoCachingCredentialsProvider(
            appContext,
            COGNITO_POOL_ID,
            Regions.US_EAST_1);
    Map<String, String> logins = new HashMap<>();
    logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken());
    mCredentialsProvider.setLogins(logins);
    //setup amazon polly
    mPollyClient = new AmazonPollyPresigningClient(mCredentialsProvider);

И выброшено исключение:

Caused by: java.lang.IllegalArgumentException
at com.amazonaws.auth.SignerFactory.createSigner(SignerFactory.java:115)
at com.amazonaws.auth.SignerFactory.lookupAndCreateSigner(SignerFactory.java:104)
at com.amazonaws.auth.SignerFactory.getSigner(SignerFactory.java:79)
at com.amazonaws.AmazonWebServiceClient.computeSignerByServiceRegion(AmazonWebServiceClient.java:379)
at com.amazonaws.AmazonWebServiceClient.computeSignerByURI(AmazonWebServiceClient.java:351)
at com.amazonaws.AmazonWebServiceClient.setEndpoint(AmazonWebServiceClient.java:215)
at com.amazonaws.services.polly.AmazonPollyClient.init(AmazonPollyClient.java:281)
at com.amazonaws.services.polly.AmazonPollyClient.<init>(AmazonPollyClient.java:261)
at com.amazonaws.services.polly.AmazonPollyPresigningClient.<init>(AmazonPollyPresigningClient.java:128)
at com.amazonaws.services.polly.AmazonPollyPresigningClient.<init>(AmazonPollyPresigningClient.java:107)
at com.amazonaws.services.polly.AmazonPollyPresigningClient.<init>(AmazonPollyPresigningClient.java:76)
at com.example.mymirrorlinkapplication.MainActivity.initializeLex(MainActivity.java:552)
at com.example.mymirrorlinkapplication.MainActivity.checkFacebookLogin(MainActivity.java:298)
at com.example.mymirrorlinkapplication.MainActivity.checkPermissions(MainActivity.java:289)

Пробовал менять с CognitoCachingCredentialsProvider на CognitoCredentialsProvider, результат тот же. Что может быть причиной этой проблемы?


person Tiago Ferreira    schedule 20.04.2017    source источник


Ответы (1)


Похоже, что код, в котором вы извлекаете значение токена доступа Facebook из объекта токена доступа, может быть неправильным. По крайней мере, на основе документов Facebook. https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this.getApplicationContext());
    accessToken = AccessToken.getCurrentAccessToken();
}

Я предполагаю, что AccessToken уже создан и заполнен. Возможно, вам потребуется обновить свой код, который вставляет токен в карту входа в систему, следующим образом:

logins.put("graph.facebook.com",AccessToken.getCurrentAccessToken());
person Rob Devereux    schedule 20.04.2017