我有一个带有登录过程的应用程序,用户可以使用他的 Facebook 帐户完成该过程。该应用程序只需要读取用户公开个人资料的权限。 我在 Android Studio 中设置了 Facebook SDK 版本 3.23.0。登录过程运行完美,应用程序有一个打开的 Activity session 及其正确的 token ,但每当我尝试 newMeRequest 时,响应总是返回以下错误:
javax.net.ssl.SSLHandshakeException: java.lang.ClassCastException: com.android.org.bouncycaSTLe.jcajce.provider.asymmetric.ec.BCECPublicKey 无法转换为 java.security.interfaces.RSAPublicKey
这是我请求的源代码:
com.facebook.Request request = com.facebook.Request.newMeRequest(session, new com.facebook.Request.GraphUserCallback()
{
@Override
public void onCompleted(GraphUser user, com.facebook.Response response)
{
// If the response is successful
if (session == Session.getActiveSession())
{
if (user != null)
{
// do some things ...
}
}
if (response.getError() != null)
{
// handle errors
}
}
});
request.executeAsync();
我已经在浏览器中检查了请求的 URL,它有效。我不知道对象 Response 中发生了什么。任何帮助将不胜感激。
提前致谢,亲切的问候
最佳答案
我找到了证书的问题所在。我也在使用 Volley 进行通信,使用自定义堆栈来管理安全连接。似乎覆盖 HttpsUrlConnection 以使用我的证书与 Facebook 自己的 https 连接发生冲突。更换证书解决了这个问题。
关于android - Facebook Android SDK 始终返回错误响应(SSLHandshakeException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28725053/