我有一个网站,代码运行不变,现在已经满足了我的客户需求。我可能应该很快更新它,因为它已经从冰河时代开始。该页面使用名为TN3 Gallery的滑块插件。按ID(即10150593562656862)访问Facebook图像库。
然而,我前几天进行了修改,文件上传后,我连接到facebook的jquery滑块退出了工作!我从未更改过这段代码,重新上传了依赖项,更新了依赖项,回滚了依赖项等等。
似乎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
控制台日志:
1.4.2
未捕获的TypeError:无法读取未定义的属性“长度”
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 (匿名 功能)@照片?回调= jsonp1435211307395& _ = 1435211307471& offset = 0& limit = 20& fields = id%2Cpicture%2Csource%2 ...:1
ALSO
使用1.7.1
未捕获的TypeError:无法读取未定义的属性“长度”
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 :(得分:0)
不知道你在那里使用什么插件,以及它如何尝试从Facebook获取数据 - 但它可能会因最近迁移到Facebook Graph API v2而被绊倒。
有了这个,现在几乎所有的API请求(用户个人资料图片除外)需要使用访问令牌 - 因为到目前为止您可能没有提供,API请求现在只会导致错误,并且根本不会提供实际数据。
这意味着,首先你需要使用Facebook应用程序 - 不知道你是否已经使用过它,但如果没有,你将不得不创建一个。
然后,如果您想纯粹在客户端执行此操作,则必须首先让用户登录到您的应用程序,以便您可以获取用户访问令牌,以便他们与请求一起使用。
您的替代方法是获取数据服务器端(然后从那里将其传送到客户端)。这样,您就可以使用您的应用访问令牌,从而无需任何人登录。(请注意,应用访问令牌从不属于客户端代码,所以不要'甚至考虑在你的JavaScript中使用它。这会给你的应用程序带来很大的安全漏洞。)
答案 1 :(得分:0)
由于最近Facebook API的变化,插件tn3图库不再适用于Facebook从图库或用户处获取图像。
纯粹巧合的是,更改生效的同一天晚上,我将内容更新保存到页面中,这似乎是因果关系开始的。
该插件的开发人员没有提供任何解决方案或期望,以确定它们何时能再次运行。它们还提供了与Flickr画廊合作的能力,但由于flickr要求通过https传输请求,因此无法正常工作://我必须最终恢复本地内容更改才能使其正常工作。