我試圖通過Java和Spring Social來寫信給某人的Twitter帳戶。春季安全Twitter訪問令牌
每當我通過我的Twitter應用程序請求寫訪問,我得到以下異常:
org.springframework.social.NotAuthorizedException: Invalid or expired token
org.springframework.social.twitter.api.impl.TwitterErrorHandler.handleClientErrors(TwitterErrorHandler.java:104)
org.springframework.social.twitter.api.impl.TwitterErrorHandler.handleError(TwitterErrorHandler.java:58)
org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:537)
然而,當我關掉訪問,我沒有得到這個例外,但我(顯然)輸寫作的能力。從我所做的所有研究中,除了需要訪問令牌外,我還沒有能夠找到有關春季社交的任何信息。我無法找到Spring Social文檔,告訴我在哪裏獲得該文檔。
無論如何,這是在我的控制器:
@Autowired
ConnectionRepository connectionRepository
private Twitter getTwitter() {
connectionRepository.findPrimaryConnection(Twitter.class).api
}
@RequestMapping(value = "/connect/twitter/connect/twitter")
String loggedIn(Model model) {
if (twitter?.authorized) {
model.addAttribute("screenName", twitter.userOperations().screenName)
twitter.timelineOperations().updateStatus("Welcome to Miami #helloWorld")
HOME
}
else {
"redirect:/twitter"
}
}
我ConnectionRepository實現是一個基本的MongoDB的。我不認爲這是問題,但如果是它幾乎是相同的: https://github.com/CarloMicieli/spring-social-mongo/blob/master/src/main/java/org/springframework/social/connect/mongo/MongoConnectionRepository.java
這裏是我的調度XML:
<bean class="org.springframework.social.connect.web.ConnectController">
<property name="applicationUrl" value="http://localhost:8081/MinnesotaCows/" />
</bean>
<bean class="org.springframework.social.connect.web.ProviderSignInController">
<property name="applicationUrl" value="http://localhost:8081/MinnesotaCows/" />
<property name="signUpUrl" value="/register" />
</bean>
<bean id="twitterConnectionFactory"
class="org.springframework.social.twitter.connect.TwitterConnectionFactory">
<constructor-arg value="bUC8VEWgkfkeTXuTBuxCg" />
<constructor-arg value="5I1CNYKBCkNbsbgL2JfTNdSnSA9JVY4KHI4myxV7k4" />
</bean>
<bean id="connectionFactoryLocator"
class="org.springframework.social.connect.support.ConnectionFactoryRegistry">
<property name="connectionFactories">
<list>
<ref bean="twitterConnectionFactory" />
</list>
</property>
</bean>
<bean id="textEncryptor" class="org.springframework.security.crypto.encrypt.Encryptors"
factory-method="noOpText" />
注:我在本地主機上運行。這個問題可以解決嗎?既然沒有回調?另外,我沒有在ProviderSignInController中使用signUpUrl做任何事情。我不太確定這是什麼。
任何人對我可能會做錯什麼有任何想法 - 或者我如何通過API準確獲取訪問令牌?
謝謝你的時間!