2015-01-22 2 views
0

내 목표는 3 대 (Fb, LinkedIn, Twitter)의 소셜 로그인 버튼을 구현하고 소셜 (이메일, 이름, 마지막 이름)을 클릭하여 방문 페이지에 양식을 미리 채 웁니다. 나는 다음과 같은 코드로는 "로그인 링크드 인과 함께"버튼을 구현 한로그인 후 "LinkedIn으로 로그인"버튼이 사라짐

:

<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
    api_key: {my api_key} 
     onLoad: onLinkedInLoad 
    authorize: true 
</script> 

    <script type="text/javascript"> 
function onLinkedInLoad() { 
    IN.Event.on(IN, "auth", function() {onLinkedInLogin();}); 
    IN.Event.on(IN, "logout", function() {onLinkedInLogout();}); 
} 

function onLinkedInLogout() { 
    setLoginBadge(false); 
} 

function onLinkedInLogin() { 
    // we pass field selectors as a single parameter (array of strings) 
    IN.API.Profile("me") 
    .fields("firstName", "lastName", "industry", "location:(name)", "picture-url", "headline", "summary", "num-connections", "public-profile-url", "distance", "positions", "email-address", "educations", "date-of-birth") 
    .result(function(result) { 
     setLoginBadge(result.values[0]); 
    }) 
    .error(function(err) { 
     alert(err); 
    }); 
} 

function setLoginBadge(profile) { 
    if (!profile) { 
    profHTML = "<p>You are not logged in</p>"; 
    } 
    else { 
    var pictureUrl = profile.pictureUrl || "http://static02.linkedin.com/scds/common/u/img/icon/icon_no_photo_80x80.png"; 
    alert(profile.firstName); 
    alert(profile.lastName); 
    alert(profile.emailAddress); 

     $("#field0").val(profile.firstName); 
     $("#field1").val(profile.lastName); 
     $("#field2").val(profile.emailAddress); 
     $("#field3").val(profile.emailAddress); 

    profHTML = "<p><a href=\"" + profile.publicProfileUrl + "\">"; 
    profHTML = profHTML + "<img align=\"baseline\" src=\"" + pictureUrl + "\"></a>";  
    profHTML = profHTML + "&nbsp; Welcome <a href=\"" + profile.publicProfileUrl + "\">"; 
    profHTML = profHTML + profile.firstName + " " + profile.lastName + "</a>! <a href=\"#\" onclick=\"IN.User.logout(); return false;\">logout</a></p>"; 
    } 
    document.getElementById("loginbadge").innerHTML = profHTML; 
} 
</script> 

    //LinkedIn Button 


<script type="IN/Login"> 


    <input type="hidden" id="fnameLinkedIn" name="linkedin-id" value="<?js= firstName ?>" /> 
    <input type="hidden" id="lnameLinkedIn" name="linkedin-id" value="<?js= lastName ?>" /> 

    </script> 

코드가 작동하지만 링크드으로 로그인 할 때 "링크드으로 로그인"버튼이 사라집니다. 로그인 후 LinkedIn 버튼을 사용할 수 있습니다.

LinkedIn 버튼이 사라지지 않게하려면 어떻게해야합니까?

감사합니다.

알렉스

답변

0

당신은 로그인 버튼이 자동으로 로그인 한 후 사라있는 JS API를 사용하고 있습니다.이 방법은 API 작품이며, 그 작동 방법입니다.

JS API를 사용하면 사용자가 linkedin.com에 로그인되어있는 한 자동으로 사이트에 로그인됩니다. 사용자가 로그인 한 경우 모든 데이터를 가져 와서 양식에서 즉시 사용할 수 있습니다.

+0

그래도 페이스 북으로 로그인하면 LinkedIn에서 로그 아웃하는 "LinkedIn으로 로그인"버튼을 새로 표시합니다 –

+1

사용자가 귀하의 웹 사이트에 로그인했다면, 문제 해결 –

+0

같은 문제가 있습니다. 당신은 이것에 약간 전진이 있습니까? (로그인 할 때 로그인 버튼이 사라져야하지만 로그 아웃 후에는 로그인 버튼을 놓아야한다는 것에 동의합니다) – moreirapontocom

관련 문제