Facebook Slider:未捕获类型错误:无法读取属性'长度'的未定义

Facebook Slider: Uncaught TypeError: Cannot read property 'length' of undefined

本文关键字:属性 长度 未定义 读取 Slider 类型 Facebook 错误      更新时间:2023-09-26

多年来,我一直有一个代码不变的网站在运行,以满足我的客户需求。我可能应该尽快更新它,因为它从冰河时代就已经存在了。该页面正在使用一个名为TN3 Gallery的滑块插件。通过ID访问Facebook图片库(即10150593562656862)。

然而,前几天我做了一个修改,在文件上传后,我连接到facebook的jquery滑块不知从哪里退出了工作!我从未更改过这段代码,重新上传了依赖项、更新了依赖项和回滚了依赖项等。

Facebook似乎已经强制迁移到了他们的Graph API v2.0:https://developers.facebook.com/docs/apps/changelog#v2_0_loginhttp://techcrunch.com/2015/04/28/facebook-api-shut-down/#.7bznhf:Xb2n

控制台日志:

使用1.4.2

未捕获的类型错误:无法读取未定义的属性"length"

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.(匿名函数)@jquery-1.4.2.min.js:125(匿名功能)@照片?callback=jsonp143521307395&amp_=1435211307471&偏移量=0&limit=20&字段=id%2图片%2源%2…:1

也是

使用1.7.1

未捕获的类型错误:无法读取未定义的属性"length"

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。回调.n@jquery-1.7.1.min.js:2

f。Callbacks.ofireWith@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"          
        }]
    });
});

不知道你在那里使用什么插件,也不知道它是如何从Facebook获取数据的,但它可能会因为最近迁移到Facebook Graph API v2而出错。

因此,现在几乎所有API请求(用户配置文件图片除外)都需要使用访问令牌,而且由于到目前为止您可能还没有提供,API请求现在只会导致错误,并且根本没有给您实际数据。

这意味着,首先你需要使用Facebook应用程序——不知道你是否已经在使用了,但如果没有,你就必须创建一个。

然后,如果你想纯粹在客户端完成这项工作,你必须让用户首先登录你的应用程序,这样你就可以获得一个用户访问令牌,让他们在请求中使用。

您的替代方案是在服务器端获取数据(然后从那里将数据传递给客户端)。这样,你就可以使用你的应用程序访问令牌,从而消除任何人登录的需要

由于Facebook API最近的变化,插件tn3 gallery不再与Facebook一起从gallery或用户获取图像。

纯属巧合的是,这一更改在我将内容更新保存到页面的同一天晚上生效,从一开始,这似乎是因果关系。

该插件的开发人员没有提供任何解决方案,也没有提供何时让它重新运行的预期。他们还提供了使用Flickr图库的功能,但这也不起作用,因为Flickr要求通过https://传输请求。我最终不得不恢复到本地内容更改才能使其正常工作。