我正在尝试使用 securesocial 通过 OAuth1 对 Linkedin 进行身份验证并获取已连接用户的连接列表。
身份验证工作正常,但在用户连接后调用任何请求,都会返回 401 响应。我可能做错了,但我没有看到潜在的问题。
这是添加到securesocial 代码中提供的Java Demo 应用程序的简单方法:
@SecureSocial.SecuredAction ( authorization = WithProvider.class, params = {"linkedin"})
public static Result linkedinConnections(){
Identity user = (Identity) ctx().args.get(SecureSocial.USER_KEY);
OAuth1Info oauthInfo = user.oAuth1Info().get();
String url = "http://api.linkedin.com/v1/people/~/connections:(headline,first-name,last)?format=json";
String consumerKey = SecureSocial.serviceInfoFor(user).key().key();
String consumerSecret = SecureSocial.serviceInfoFor(user).key().secret();
return async(
WS.url(url)
.sign(
new OAuthCalculator(
new OAuth.ConsumerKey(consumerKey, consumerSecret),
new OAuth.RequestToken(oauthInfo.token().toString(), oauthInfo.secret().toString())
)
)
.get()
.map(new Function<WS.Response, Result>() {
public Result apply(WS.Response response) {
System.out.println(response);
return ok(response.getStatusText());
}
})
);
}
任何想法都会有所帮助
问候, 纳比尔