2015-06-25 7 views
-1

У меня был веб-сайт с неизменным кодом, работающим и удовлетворяющим потребности моих клиентов уже много лет. Я, вероятно, должен обновить его когда-нибудь вскоре, так как это было вокруг с ледникового периода. На странице используется плагин слайдера под названием TN3 Gallery. Доступ к галереям изображений Facebook по их идентификатору (например, 10150593562656862).Facebook Slider: Uncaught TypeError: Невозможно прочитать свойство 'length' of undefined

Однако, я сделал модификацию на другой день и после того, как файлы были загружены с помощью слайдера jquery, я подключился к facebook quit из ниоткуда! Я никогда не изменял этот код, повторно закачал зависимости, обновленную зависимость, откат зависимостей и т.д.

кажется Facebook сделал вынужденную миграцию их Graph API v2.0: https://developers.facebook.com/docs/apps/changelog#v2_0_login http://techcrunch.com/2015/04/28/facebook-api-shut-down/#.7bznhf:Xb2n

Console Log:

С 1.4.2

Uncaught TypeError: Cannot read property 'length' of undefined

c.extend.each @ jquery-1.4.2.min.js:29

h.facebook.parsePhotos @ tn3.facebook.min.js:12

h.facebook.request.f.ajax.success @ tn3.facebook.min.js:12

b @ jquery-1.4.2.min.js:124

c.extend.ajax.A.(anonymous function) @ jquery-1.4.2.min.js:125 (anonymous function) @ photos?callback=jsonp1435211307395&_=1435211307471&offset=0&limit=20&fields=id%2Cpicture%2Csource%2…:1

ТАКЖЕ

С 1.7.1

Uncaught TypeError: Cannot read property 'length' of undefined

e.extend.each @ jquery-1.7.1.min.js:2h.facebook.parsePhotos @ tn3.facebook.min.js:12

h.facebook.request.f.ajax.success @ tn3.facebook.min.js:12

f.Callbacks.n @ jquery-1.7.1.min.js:2

f.Callbacks.o.fireWith @ jquery-1.7.1.min.js:2

w @ jquery-1.7.1.min.js:4f.ajaxTransport.send.d.onload.d.onreadystatechange @ jquery-1.7.1.min.js:4

сценария:

$(document).ready(function() { 
    var tn1 = $('.mygallery').tn3({ 
       skinDir:"skins", 
     skin:"tn3a", 
      autoplay:true, 
      delay:4500, 
      mouseWheel:false,   
     image:{ 
      crop:true, 
      random:true, 
      maxZoom:3.0 

     },   
     external:[{ 
     origin:"facebook", 
     source:"album", 
     ID:"10150593562656862"   
     }] 
    }); 
}); 
+0

Я забыл упомянуть, что использовал слайдер под названием TN3 Gallery. Это была единственная галерея, которую я нашел давным-давно, что безупречно вытащил конкретные изображения галереи из страниц facebook без необходимости создания приложения. – leaninonlife

ответ

0

Понятия не имею, что плагин вы используете там, и как она пытается извлечь данные из Facebook - но, вероятно, это вызвало недавнюю миграцию в Facebook Graph API v2.

При том, что в настоящее время почти все запросы API (для профилей пользователей снимков за исключением) требуют с использованием маркеров доступа - и так как вы, вероятно, не обеспечивают один до сих пор, запрос API теперь будет приводить к только ошибка, и вообще не давайте фактических данных.

Это означает, что прежде всего вам нужно будет использовать приложение Facebook - не знаете, используете ли вы его уже, но если нет, вам придется его создать.

И тогда, если вы хотите сделать это чисто на стороне клиента, сначала вам нужно будет сначала войти в ваше приложение, чтобы вы могли получить токен доступа пользователей для использования с запросом.

Ваша альтернатива - это получение данных на стороне сервера (а затем доставить ее клиенту оттуда). Таким образом, вы можете использовать токен доступа к приложениям и тем самым исключить необходимость входа в систему. (Имейте в виду, что токен доступа к приложению делает никогда принадлежит к клиентскому коду, поэтому даже не думайте об использовании это в вашем JavaScript. Это создало бы довольно уязвимость для вашего приложения.)

0

Из-за недавних изменений в API Facebook галерея плагина tn3 больше не работает с Facebook для извлечения изображений из галереи или пользователя.

Было просто случайно, что изменение вступило в силу в ту же ночь, что я сохранил обновление контента на странице, которая, как казалось, была причинной в природе для начала.

Разработчики плагина не предоставили никаких разрешений или ожиданий относительно того, когда они снова будут функционировать. Они также предлагают возможность работать с галереями Flickr, но это не работает либо из-за требования Flickr к запросам трафика по https: // Мне пришлось вернуться к изменениям локального контента в конце, чтобы заставить его работать.

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