【问题标题】:Android SDK SignerFactory throwing exceptionAndroid SDK SignerFactory 抛出异常
【发布时间】:2017-04-20 09:39:02
【问题描述】:

我正在使用 AWS Cognito 和 Polly 构建一个 Android 应用程序。该应用程序一直运行良好,直到今天它开始在 auth.SignerFactory.createSigner 函数中抛出 IllegalArgumentException。

我有以下代码:

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,但结果是一样的。这个问题的原因可能是什么?

【问题讨论】:

    标签: android amazon-web-services authentication identity amazon-polly


    【解决方案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());
    

    【讨论】:

      猜你喜欢
      • 2012-01-31
      • 1970-01-01
      • 2012-09-30
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 2013-05-24
      相关资源
      最近更新 更多