Facebook API - 没有 return 照片的所有字段
Facebook API - doesn't return all fields for photos
我正在使用 Facebook API 浏览相册,选择一个相册,然后将照片输出到我的页面上。
我使用 Facebook 登录成功。接受应用权限。它将所有相册输出到 select 的页面上。我 select 一个相册并将相册 ID 传递到另一个我输出照片的页面。但是响应没有所有的照片字段,只有 id
和 created_time
。
例如:
//load fb api
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
//Initialise
window.fbAsyncInit = function() {
FB.init({
appId : 'XXXXXXXX',
status : true,
xfbml : true,
cookie : true,
version : 'v2.4'
});
}
//Get albums - This works fine.
FB.api( "/me/albums", function (response) {
if (response && !response.error) {
data = response.data;
//Output albums...
}
});
我 select 一个相册并将其传递到我输出照片的页面,如下所示:
FB.api(
"/ALBUM_ID/photos",
function (response) {
if (response && !response.error) {
console.log(response);
}
}
);
这就是问题所在。日志中的输出如下所示:
Object {data: Array[1], paging: Object}
data: Array[1]
0: Object
created_time: "2014-05-07T10:39:31+0000"
id: "xxxxxxxxxxxxxxx"
就是这样。没有其他字段。日志中没有错误。我不明白为什么我只得到一些数据。
The Graph API v2.4 减少了默认响应中的字段数。
https://developers.facebook.com/blog/post/2015/07/08/graph-api-v2.4/
Fewer default fields for faster performance: To help improve performance on mobile network connections, we've reduced the number of fields that the API returns by default. You should now use the ?fields=field1,field2
syntax to declare all the fields you want the API to return.
简而言之,明确说明您需要哪些字段作为请求的一部分。
我正在使用 Facebook API 浏览相册,选择一个相册,然后将照片输出到我的页面上。
我使用 Facebook 登录成功。接受应用权限。它将所有相册输出到 select 的页面上。我 select 一个相册并将相册 ID 传递到另一个我输出照片的页面。但是响应没有所有的照片字段,只有 id
和 created_time
。
例如:
//load fb api
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
//Initialise
window.fbAsyncInit = function() {
FB.init({
appId : 'XXXXXXXX',
status : true,
xfbml : true,
cookie : true,
version : 'v2.4'
});
}
//Get albums - This works fine.
FB.api( "/me/albums", function (response) {
if (response && !response.error) {
data = response.data;
//Output albums...
}
});
我 select 一个相册并将其传递到我输出照片的页面,如下所示:
FB.api(
"/ALBUM_ID/photos",
function (response) {
if (response && !response.error) {
console.log(response);
}
}
);
这就是问题所在。日志中的输出如下所示:
Object {data: Array[1], paging: Object}
data: Array[1]
0: Object
created_time: "2014-05-07T10:39:31+0000"
id: "xxxxxxxxxxxxxxx"
就是这样。没有其他字段。日志中没有错误。我不明白为什么我只得到一些数据。
The Graph API v2.4 减少了默认响应中的字段数。
https://developers.facebook.com/blog/post/2015/07/08/graph-api-v2.4/
Fewer default fields for faster performance: To help improve performance on mobile network connections, we've reduced the number of fields that the API returns by default. You should now use the
?fields=field1,field2
syntax to declare all the fields you want the API to return.
简而言之,明确说明您需要哪些字段作为请求的一部分。