2013-05-28 44 views
1

我有一個使用JSF的Web應用程序。使用Twitter4J庫實現使用twitter登錄

我的網頁上我有一個按鈕,調用doTwitterLogin()

public void doTwitterLogin() { 
    try { 
     HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 
     String url = req.getRequestURL().toString(); 
     Twitter twitter = new TwitterFactory().getInstance(); 
     twitter.setOAuthConsumer("xxx", "xxx"); 
     RequestToken requestToken = twitter.getOAuthRequestToken(url); 

     FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("requestToken_token", requestToken.getToken()); 
     FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("requestToken_secret", requestToken.getTokenSecret()); 
     FacesContext.getCurrentInstance().getExternalContext().redirect(requestToken.getAuthorizationURL()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

RequestToken requestToken = twitter.getOAuthRequestToken(url);部分調試後,我得到一個異常。

SEVERE: 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync. 
<?xml version="1.0" encoding="UTF-8"?> 
<hash> 
    <error>Desktop applications only support the oauth_callback value 'oob'</error> 
    <request>/oauth/request_token</request> 
</hash> 

參考:http://twitter4j.org/en/code-examples.html

回答

0

您標記您的應用程序作爲 '桌面應用程序'。您應該使用應用程序設置將其更改爲Web應用程序。