サイトのリンクイン ユーザーを認証しようとしています。Scribe を使用して認証を処理しています。
私はこれを2段階のプロセスでやろうとしています。
step1 は正しい URL を取得し、ユーザーを確認ページにリダイレクトするだけです。これはうまくいっています。確認した後、自分のサイトのページにリダイレクトされます。
ステップ2は私が問題を抱えているものです。リダイレクトされた xpage が開いているときに、URL のトークンと検証キーを使用して step2 メソッドを呼び出しています。
私が得られないことの 1 つは、両方のステップでサービスを構築する必要があるかどうか、およびこれが問題の原因であるかどうかです。2 つのステップの間に requestToken を送信するにはどうすればよいですか。このシナリオを機能させる方法をアドバイスしてください
ありがとう - トーマス
import org.scribe.builder.ServiceBuilder;
import org.scribe.oauth.OAuthService;
import java.util.Scanner;
import org.scribe.builder.*;
import org.scribe.model.*;
import org.scribe.oauth.*;
import org.scribe.builder.api.*;
import javax.faces.context.*;
public class DoDance
{
private static final String PROTECTED_RESOURCE_URL = "http://api.linkedin.com/v1/people/~/connections:(id,last-name)";
public void step1()
{
try {
OAuthService service = new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey("key")
.apiSecret("secret")
.callback("http://www.acme.com/linkedin.xsp")
.build();
Token requestToken = service.getRequestToken();
String authUrl = service.getAuthorizationUrl(requestToken);
// Redirects the user to linkedin confirmation page
// This is working fine
FacesContext.getCurrentInstance().getExternalContext().redirect(authUrl);
} catch (Exception e) {
e.printStackTrace();
}
}
public String step2(String tok,String ver){
// this method is called in the beforeRenderResponse in the redirected xpage
// I get the token and verifyer in from the url parameters
Response response = null;
try {
OAuthService service = new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey("key")
.apiSecret("secret")
.build();
Token accessToken = service.getAccessToken(???,new Verifier(ver));
OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);
service.signRequest(accessToken, request);
response = request.send();
} catch (Exception e) {
e.printStackTrace();
}
return "Body = " + response.getBody();
}
}