簡體   English   中英

Qualtrics中的Facebook SDK登錄

[英]Facebook SDK login in Qualtrics

我包括了Facebook登錄Javascript SDK,以創建社交登錄按鈕並在Qualtrics中顯示參與者的Facebook用戶圖片。

我現在面臨的問題是,在我第一次想要顯示按鈕和用戶圖片時,它的顯示效果很好,但是在后續頁面上(即單擊下一個按鈕之后)就不再顯示了。 我嘗試將代碼復制到第二次要顯示用戶圖片和按鈕的頁面上的問題,並將其添加到外觀部分的標題中,但是我無法使其正常工作。 它在我使用它的第一頁上(無論在調查中位於何處)都可以正常工作,但不適用於任何后續頁面。 任何幫助將不勝感激!

謝謝!

 <div id="status"></div> <!DOCTYPE html> <html> <head> <title>Facebook Login JavaScript Example</title> <meta charset="UTF-8"> </head> <body> <script> // This is called with the results from from FB.getLoginStatus(). function statusChangeCallback(response) { console.log('statusChangeCallback'); console.log(response); // The response object is returned with a status field that lets the // app know the current login status of the person. // Full docs on the response object can be found in the documentation // for FB.getLoginStatus(). if (response.status === 'connected') { // Logged into your app and Facebook. getInfo(); } else { // The person is not logged into your app or we are unable to tell. document.getElementById('status').innerHTML = "<span style='color: #333333; font-size: 16px;'>Facebook account (please connect your account)</span>"; } } // This function is called when someone finishes with the Login // Button. See the onlogin handler attached to it in the sample // code below. function checkLoginState() { FB.getLoginStatus(function(response) { statusChangeCallback(response); }); } window.fbAsyncInit = function() { FB.init({ appId : '875253029346318', cookie : true, // enable cookies to allow the server to access // the session xfbml : true, // parse social plugins on this page version : 'v3.1' // use graph api version 3.1 }); // Now that we've initialized the JavaScript SDK, we call // FB.getLoginStatus(). This function gets the state of the // person visiting this page and can return one of three states to // the callback you provide. They can be: // // 1. Logged into your app ('connected') // 2. Logged into Facebook, but not your app ('not_authorized') // 3. Not logged into Facebook and can't tell if they are logged into // your app or not. // // These three cases are handled in the callback function. FB.getLoginStatus(function(response) { statusChangeCallback(response); }); }; // Load the SDK asynchronously (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); // Here we run a very simple test of the Graph API after login is // successful. See statusChangeCallback() for when this call is made. function getInfo() { console.log('Welcome! Fetching your information.... '); FB.api('/me', 'GET', {fields: 'first_name,last_name,name,id,picture.width(100).height(100)'}, function(response) { document.getElementById('status').innerHTML = "<span style='color: #333333; font-size: 16px;'>Facebook account (linked!)</span><img src='" + response.picture.data.url + "'>"; }); } </script> <!-- Below we include the Login Button social plugin. This button uses the JavaScript SDK to present a graphical Login button that triggers the FB.login() function when clicked. --> <fb:login-button size="large" button-type="continue_with" scope="public_profile,email" onlogin="checkLoginState();"> </fb:login-button> </body> </html> 

在一次調查中兩次顯示“喜歡”按鈕時,我遇到了類似的問題。 這是因為調查沒有在新頁面上加載新的網站,所以它“認為”所有內容都已被查看。 因此,您需要使用FB.XFBML.parse()強制它進行查看。

這是我的同事為我編寫的like按鈕的示例代碼。 您可以重新實現登錄。

(function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

if(typeof(FB) !== "undefined") {
    FB.XFBML.parse();
} 

如果您允許受訪者中斷調查並在以后完成調查,則還需要在上面的代碼之前使用此初始化。

window.fbAsyncInit = function() {
    FB.init({
      xfbml      : true,
      version    : 'v2.7' //some version needs to be here
    });
  };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM