我正在嘗試驗證我的網站的linkedin用戶。我正在使用Scribe來處理認證。如何在xPages中使用scribe使用java驗證linkedin用戶
我正試圖在兩個步驟中完成此操作。
step1只是獲取正確的url並將用戶重定向到確認頁面。這工作正常。並且在我確認後,我被重定向回到我網站上的一個頁面。
步驟2是我遇到問題的人。當重定向的xpage打開時,我使用來自url的令牌和驗證者密鑰調用step2方法。
有一件事我沒有得到的是,如果我真的需要在兩個步驟中構建服務,並且這是什麼導致我的問題。我如何在兩個步驟之間發送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();
}
}
你看過社交啓用器插件嗎? – jjtbsomhorst 2012-03-22 07:01:08
是的,我做到了,社交促成因素與關鍵商店密切相關。所以如果你想要另一種解決方案,你就不能使用它。 – 2012-03-22 07:14:21
如果您需要將requestToken傳遞給步驟2,您可以創建一個(會話範圍)userBean並將其存儲在那裏。 – 2012-03-22 08:57:29