Hen*_*wan 31
Scribe是一个用于Java的OAuth库,由提问者自己编写.;-)
注意:我在此发布此答案,以便其他googlers可以选择其他选择.对于另一个基于库的替代方案,请参阅我的其他答案"Jersey OAuth签名库".
一些代码用于说明用法:
OAuthService service = new ServiceBuilder()
.provider(TwitterApi.class)
.apiKey("your_api_key")
.apiSecret("your_api_secret")
.build();
...
Token requestToken = service.getRequestToken();
String your_token = requestToken.getToken();
...
Verifier verifier = new Verifier("your_previously_retrieved_verifier");
Token accessToken = service.getAccessToken(requestToken, verifier);
Run Code Online (Sandbox Code Playgroud)
创建请求:
OAuthRequest request = OAuthRequest(Verb.GET, "http://api.twitter.com/1/direct_messages.json");
service.signRequest(accessToken, request);
Response response = request.send();
Run Code Online (Sandbox Code Playgroud)
Pas*_*ent 12
http://oauth.net/code上提到的一个图书馆看起来很有趣(我不包括那些不是你想要的Spring Security和OAuth Signpost的OAuth):
一个Java库和示例是由约翰·克里斯蒂安,普利文Alavilli和德克Balfanz贡献.
Ryan Heaton也提供了针对Spring Security的OAuth.此项目未托管在OAuth存储库中.
OAuth Signpost为Java和Apache HttpComponents提供简单的OAuth消息签名(Google Android ready!).供稿人:Matthias Kaeppler.
我已经进一步检查了Java库,我认为它提供了客户端和服务器端代码所需的一切.以下博客文章实际上是一个完整的示例,我正在粘贴下面的服务器代码(JSP):
<%@ page import="net.oauth.server.*"%>
<%@ page import="net.oauth.*"%>
<%
//Presumably this should actually be looked up for a given key.
String consumerSecret="uynAeXiWTisflWX99KU1D2q5";
//Presumably the key is sent by the client. This is part of the URL, after all.
String consumerKey="orkut.com:623061448914";
//Construct the message object. Use null for the URL and let the code construct it.
OAuthMessage message=OAuthServlet.getMessage(request,null);
//Construct an accessor and a consumer
OAuthConsumer consumer=new OAuthConsumer(null, consumerKey, consumerSecret, null);
OAuthAccessor accessor=new OAuthAccessor(consumer);
//Now validate. Weirdly, validator has a void return type. It throws exceptions
//if there are problems.
SimpleOAuthValidator validator=new SimpleOAuthValidator();
validator.validateMessage(message,accessor);
//Now what? Generate some JSON here for example.
System.out.println("It must have worked"); %>
Run Code Online (Sandbox Code Playgroud)
这看起来很接近你想要的.
归档时间: |
|
查看次数: |
53876 次 |
最近记录: |