我正在使用Spring Social框架。使用正确的访问令牌获取org.springframework.social.MissingAuthorizationException

时间:2015-03-17 06:32:17

标签: android facebook spring-social

我从Android原生应用程序获得了访问令牌。我通过Graph API调试器进行了测试,并在接下来的两个月内进行了测试。使用相同的访问令牌处理Facebook模板。当我尝试template.isAuthorized时,它返回true.But当我尝试访问template.userOperations它通过以下错误请帮忙。

Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.social.MissingAuthorizationException: method <init>(Ljava/lang/String;)V not found
    at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleFacebookError(FacebookErrorHandler.java:89)
    at org.springframework.social.facebook.api.impl.FacebookErrorHandler.handleError(FacebookErrorHandler.java:65)
    at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:486)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:443)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:415)
    at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:213)
    at org.springframework.social.facebook.api.impl.FacebookTemplate.fetchConnections(FacebookTemplate.java:222)
    at org.springframework.social.facebook.api.impl.FacebookTemplate.fetchConnections(FacebookTemplate.java:216)

1 个答案:

答案 0 :(得分:1)

堆栈跟踪有点误导,因为您实际上正在查看班级java.lang.NoSuchMethodError中的org.springframework.social.MissingAuthorizationException

更具体地说,它抱怨method <init>(Ljava/lang/String;)V not found,或者换句话说:在上述类中不存在采用字符串参数的构造函数。

对我而言,听起来你正在运行一个相当旧版本的Spring,很可能是1.0.x版本。即比较版本1.0.3和1.1.0的构造函数:

1.0.3:public MissingAuthorizationException()

1.1.0:public MissingAuthorizationException(String providerId)

当您切换到具有字符串参数化MissingAuthorizationException构造函数的Spring版本时,您的问题应该立即解决。

//编辑:构造函数已更改为在2012年10月包含提供者ID。确切地说,是This commit