0
基於Scribe example on github,我試圖授權我的應用程序使用LinkedIn的api。如何使用JSF的Scribe連接LinkedIn API?
這裏是綁在按鈕點擊我當前的代碼:
public String generateFromLinkedIn() {
OAuthService service = new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.callback("http://localhost:8080/Project/faces/linkedIn.xhtml").build();
ExternalContext externalContext = FacesContext.getCurrentInstance()
.getExternalContext();
Token requestToken = service.getRequestToken();
String authUrl = service.getAuthorizationUrl(requestToken);
try {
externalContext.redirect(authUrl);
} catch (IOException ex) {
Logger.getLogger(LinkedInController.class.getName()).log(Level.SEVERE, null, ex);
}
Map<String, String> parameterMap = (Map<String, String>) externalContext.getRequestParameterMap();
Verifier v = new Verifier(parameterMap.get("oauth_verifier"));
Token accessToken = service.getAccessToken(requestToken, v);
OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.linkedin.com/v1/people/~");
service.signRequest(accessToken, request);
Response response = request.send();
System.err.println(response.getBody());
return "";
}
在我.xhtml頁面我有:
<h:commandButton value="Generate" action="#{linkedInController.generateFromLinkedIn()}"></h:commandButton>
一切工作好,直到我設法得到驗證從沒有任何oauth_verifier的參數圖。我嘗試將它分成多個方法,但到目前爲止,我無法從URL參數獲取oauth_verifier,即使它在LinkedIn授權對話框返回後顯然存在。
有關如何正確獲取此驗證程序或如何使Scribe與JSF一起工作的任何建議?
感謝BalusC,將剩餘的代碼移動到支持bean的@PostConstruct工作。我感謝您的幫助! – greenJavaDev 2014-09-02 18:38:47
不客氣。 – BalusC 2014-09-02 18:49:19