0

У меня есть проект django, который предназначен для приложения facebook. В проекте модуль приглашенных друзей отлично работает в локальном хосте!Javascript не работает на Facebook iframe

Runs fine on localhost

Но в то время как он будет загружен в facebook применения, JavaScript, ответственного за отображение списка друзей не работает. Хотя библиотеки правильно загружены.

Javascript doesnot run on facebook app

Я не знаю, почему это так. Может быть, некоторая проблема iframe. Ниже представлен код JavaScript

<script type="text/javascript"> 
window.fbAsyncInit = function() { 
    FB.init({appId: '460948667348013', cookie: true}); 

    FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
     FB.api('/me', function(response) { 
      // alert('Your name is ' + response.name); 
      console.log('Your name is ' + response.name); 
      init(); 
     }); 
     } else if (response.status === 'not_authorized') { 
     alert('the user is logged in to Facebook, but has not authenticated your app'); 
     } else { 
     alert('the user is not logged in to Facebook.'); 
     } 
    }); 
} 
    function init() { 
     FB.api('/me', function(response) { 
      $("#username").html("<img src='https://graph.facebook.com/" + response.id + "/picture'/><div>" + response.name + "</div>");  
      $("#jfmfs-container").jfmfs({ 
       max_selected: 15, 
       max_selected_message: "{0} of {1} selected", 
       friend_fields: "id,name,last_name", 
       pre_selected_friends: [1014025367], 
       exclude_friends: [1211122344, 610526078], 
       sorter: function(a, b) { 
       var x = a.last_name.toLowerCase(); 
       var y = b.last_name.toLowerCase(); 
       return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
       } 
      }); 
      $("#jfmfs-container").bind("jfmfs.friendload.finished", function() { 
       window.console && console.log("finished loading!"); 
      }); 
      $("#jfmfs-container").bind("jfmfs.selection.changed", function(e, data) { 
       window.console && console.log("changed", data); 
      });      

      $("#logged-out-status").hide(); 
      $("#show-friends").show(); 
     }); 
    }    

    $("#show-friends").live("click", function() { 
     var friendSelector = $("#jfmfs-container").data('jfmfs');    
     $("#selected-friends").html(friendSelector.getSelectedIds().join(', ')); 
    });     
    function sendRequest() { 
     var friendSelector = $("#jfmfs-container").data('jfmfs'); 
     var sendUIDs = friendSelector.getSelectedIds().join(', '); 
     // Use FB.ui to send the Request(s) 
     FB.ui({method: 'apprequests', 
     to: sendUIDs, 
     title: 'My Great Invite', 
     message: 'Check out this Awesome App!', 
     }, callback); 
    } 
    function callback(response) { 
     // alert('callback called'); 
     var friendSelector = $("#jfmfs-container").data('jfmfs'); 
     var sendUIDs = friendSelector.getSelectedIds().join(','); 
     var uids = sendUIDs.split(','); 
     var query = ''; 
     for(i=0;i<uids.length;i++){ 
     if(i==0){ 
      query = query + 'to[' + i + ']=' + uids[i]; 
     } 
     else{ 
     query = query + '&to[' + i + ']=' + uids[i]; 
     } 
     } 
     console.log(query); 
     if(response){ 
     // alert('successful'); 
     window.location.assign("/?"+ query) 
     } 
     else{ 
     alert('failure'); 
     } 

    } 

    </script> 

Пожалуйста, помогите! Я застрял в этой проблеме.

ответ

1

Проблема может быть связана с вопросами SSL.

Facebook внес много изменений за несколько месяцев назад.

Также вам необходимо обновить блог разработчиков Facebook.

Поэтому я попытаюсь объяснить несколько вещей, которые, как я подозревал.

App на Facebook

  1. Ваш Canvas Page должен быть https://apps.facebook.com/yourchoosenname

1a. Ваш Canvas URL должен быть https://yoursite.com/yourapplication/

Сайт

http://yoursite.com/

Page Tab

  1. Ваш Secure Canvas должна быть https://yoursite.com/yourapplication/

  2. Ваш Page Tab URL должен быть https://yoursite.com/yourapplication/

  3. Ваш Secure URL страницы Tab должен быть https://yoursite.com/yourapplication/

В этом случае вам потребуется сертификат SSL для сайта, чтобы Вы могли найти надежный, но дешевый цифровой сертификат от Here.

Это обязательное для любого приложения для работы на facebook.

Надеюсь, это поможет вам и другим.

+0

Приложение для facebook теперь находится в режиме песочницы, а URL-адрес холста - только http. Итак, это означает, что скрипт будет работать, если URL-адрес холста будет https? –

+0

да, безусловно, это сработает – ShapCyber

 Смежные вопросы

  • Нет связанных вопросов^_^