new*_*bie 6 twitter spring twitter-oauth spring-social spring-social-twitter
我想使用spring social来开发一个Twitter应用程序,它将更新状态并上传照片.我无法理解如何使用Spring社交进行Oauth身份验证.我看到的所有示例都是关于硬编码即使只是针对该特定的user.I不想硬编码除app键以外的任何东西.
请有人解释我如何使用spring社交来做Twitter Oauth.我浏览了spring框架的官方文档,但在看到其他示例时却感到困惑.
谢谢
tol*_*ius 13
"app keys"aka consumer { key, secret }pair授权您的应用使用不需要用户身份验证的 Twitter API .当你在没有登录的情况下浏览Twitter网站时考虑它.因此你有能力搜索,获取时间表等.=>只读.
如果你想发布的东西回来,你就必须让你应用程式?那代表真正的Twitter账号/用户.想想有人写一个Twitter客户端=>它可以被许多不同的用户下载,因此需要两件事才能正常运行:
consumer { key, secret }一对access { token, secret }对为了获得该访问{token,secret}对,您必须从该用户/帐户获得"OK".
这就是OAuth进来的地方=>它将用户发送到确认页面,在那里他点击"确定,我允许此应用程序代表我发布 ".这个"确定"然后转换为OAuthToken您的应用可以使用的.
如果你想要的只是代表自己发布更新,那么你需要批准你自己的Twitter应用程序,并坚持OAuthToken使用你的应用程序.
不幸的是Twitter 还没有支持 OAuth 2.0,因此你必须做更多......你必须做OAuth 1.0a.
Spring Social文档描述了OAuth 1.0a流程,您可以在其中直观地看到流程.
为了使用Spring Social API"编码"此流程,您应首先请求访问{token,value}对(btw 有一个方便的ConnectController):
TwitterConnectionFactory connectionFactory =
new TwitterConnectionFactory( "consumerKey", "consumerSecret" );
OAuth1Operations oauthOperations = connectionFactory.getOAuthOperations();
OAuthToken requestToken = oauthOperations.fetchRequestToken( "https://my-callback-url", null );
String authorizeUrl = oauthOperations.buildAuthorizeUrl( requestToken, OAuth1Parameters.NONE );
response.sendRedirect( authorizeUrl );
Run Code Online (Sandbox Code Playgroud)
一旦它回来(到您的回调URL),您可以使用OAuth1Operations获取OAuthToken,这正是该对.
// upon receiving the callback from the provider:
OAuthToken accessToken = oauthOperations.exchangeForAccessToken(
new AuthorizedRequestToken(requestToken, oauthVerifier), null);
Run Code Online (Sandbox Code Playgroud)
现在,您拥有所需的一切,您可以选择:
OAuthToken:String consumerKey = "..."; // The application's consumer key
String consumerSecret = "..."; // The application's consumer secret
String accessToken = accessToken.getValue();
String accessTokenSecret = accessToken.getSecret();
Twitter twitter = new TwitterTemplate( consumerKey, consumerSecret, accessToken, accessTokenSecret );
Run Code Online (Sandbox Code Playgroud)
Connection<Twitter> connection = connectionFactory.createConnection( accessToken );
Run Code Online (Sandbox Code Playgroud)
一旦你得到了Connection,你可能想通过坚持它ConnectionRepository为这里显示,所以你不必去通过令牌再次获得访问.
| 归档时间: |
|
| 查看次数: |
10140 次 |
| 最近记录: |