2017-01-09 4 views
0

私は開発中ですSpring MVC + Apache Oltu + Twitter例です。この例では、https://apps.twitter.com/app/newというリンクからアプリケーションを登録/作成してclient Id and Secreteを作成しました。 ClientIdとSecreteの助けを借りて、TwitterのREST APIを呼びたいと思っています。私はまた、scopehttps://developers.artsy.net/docs/authenticationのリンクをたどった。Apache Oltu + Twitter統合の例が動作しない

AUTHORIZATION_URL = "https://api.twitter.com/oauth/authorize"; 
CLIENT_ID = "RSvE3qVXXXXXXXXXXXXXXXX"; 
CLIENT_SECRET = "nKEWRoOcXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
REDIRECT_URL = "http://localhost:8080/apache-oltu/twitter/redirect"; 
ACCESS_TOKEN_URL = "https://api.twitter.com/oauth/access_token"; 

clientIdsecrete私はセキュリティ上の目的のために正しくここに表示されない:

は、私は自分のアプリケーションで以下のパラメータを使用していました。今私がコントローラに電話をすると、私はTwitterから次のエラーを参照しています。

enter image description here

私のコントローラは、実際にリダイレクトされます。

https://api.twitter.com/oauth/authorize?scope=offline_access&response_type=code&redirect_uri= 
http%3A%2F%2Flocalhost%3A8080%2Fapache-oltu%2Ftwitter%2Fredirect&client_id=RSvE3qV6Hxfdgv39RJIjDvhhc 

ここで間違っているものを私にヘルプ/ガイドしてください。どんな助け?

scope=offline_accessは正しいですか?私のコードを共有しました

controller: 
@Controller 
@RequestMapping("/twitter") 
public class TwitterController { 
    private static final Logger LOGGER = LoggerFactory.getLogger(TwitterController.class); 

    private static final String AUTHORIZATION_URL = "https://api.twitter.com/oauth/authorize"; 
    private static final String CLIENT_ID = "RSvE3qVXXXXXXXXXXXXXXXXXXXXXX"; 
    private static final String CLIENT_SECRET = "nKEWRoXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
    private static final String REDIRECT_URL = "http://localhost:8080/apache-oltu/twitter/redirect"; 
    private static final String ACCESS_TOKEN_URL = "https://api.twitter.com/oauth/access_token"; 

    @RequestMapping(value = "/auth", method = RequestMethod.GET) 
    public String authenticate() throws OAuthSystemException { 
     OAuthClientRequest request = OAuthClientRequest 
       .authorizationLocation(AUTHORIZATION_URL) 
       .setClientId(CLIENT_ID) 
       .setRedirectURI(REDIRECT_URL) 
       .setResponseType("code") 
       .setScope("offline_access") 
       .buildQueryMessage(); 

     System.out.println("REDIRECT TO: "+request.getLocationUri()); 
     return "redirect:" + request.getLocationUri(); 
    } 

    @RequestMapping(value = "/redirect", method = RequestMethod.GET) 
    public HttpEntity<String> redirect(@RequestParam(value = "code", required = false) String code) throws OAuthSystemException, OAuthProblemException { 
     String value = "UNKNOWN"; 

     if (code != null && code.length() > 0) { 
      System.out.println("Received CODE: "+code); 
      getAccessToken(code); 
      value = code; 
     } 

     return new ResponseEntity<String>(value,HttpStatus.OK); 
    } 
.......................... 
......................... 
} 

助けが必要ですか?

答えて

関連する問題