从 facebook 图表中获取全尺寸图片 API
Get full sized picture from facebook graph API
我正在使用图表 api 端点 /PAGE_ID/posts
从 Facebook 页面获取所有帖子。
现在我想要这些帖子中的全尺寸图片。返回对象的图片 属性 只给我该图片的裁剪版本。
使用这些帖子中的对象 ID 和 API 端点 /OBJECT_ID/picture
我得到了图片的唯一小版本、普通版本和相册大小版本。但是对 URL 稍作修改,我设法获得了完整尺寸的图像。
例子
这个URL:
https://graph.facebook.com/10152843929471041/picture
我从 URL 中删除了 720x720
得到这个 URL:
https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/s/10838228_10152843929471041_5251228402651650719_n.jpg
这是最终的全尺寸图像。
我认为,我可以使用正则表达式模式实现此修改。但现在是我的问题,如何在重定向后从原始 URL(第一个)获得 URL。
有什么想法或更简单的解决方案吗?
这是获得更大图片的方法:
/OBJECT-ID/picture?width=500&height=500
或者:
/OBJECT-ID/picture?type=large
另请查看此线程中的答案:Facebook Graph API : get larger pictures in one request
编辑:由于这似乎不适用于对象 ID,您可以从该响应中获取图像:
https://graph.facebook.com/10152843929471041
寻找 "images" 数组。
也可以请求 images
集合 photo
对象,然后搜索 最高分辨率条目。
参见documentation。代码:
MyFacebookWrapper.getBestImage = function(photoId) {
var deferred = new $.Deferred();
var params = { fields: "images" };
FB.api("/" + photoId, "get", params,
function (response) {
console.log("MyFacebookWrapper.getBestImage, response:");
console.log(response);
var images = _.sortBy(response.images, 'width');
var best = _.last(images)
deferred.resolve(best);
}
);
return deferred.promise();
};
用法:
MyFacebookWrapper.getBestImage("photo Id ...").then(function(image) {
console.log(image);
});
我正在使用图表 api 端点 /PAGE_ID/posts
从 Facebook 页面获取所有帖子。
现在我想要这些帖子中的全尺寸图片。返回对象的图片 属性 只给我该图片的裁剪版本。
使用这些帖子中的对象 ID 和 API 端点 /OBJECT_ID/picture
我得到了图片的唯一小版本、普通版本和相册大小版本。但是对 URL 稍作修改,我设法获得了完整尺寸的图像。
例子
这个URL:
https://graph.facebook.com/10152843929471041/picture
我从 URL 中删除了 720x720
得到这个 URL:
https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/s/10838228_10152843929471041_5251228402651650719_n.jpg
这是最终的全尺寸图像。
我认为,我可以使用正则表达式模式实现此修改。但现在是我的问题,如何在重定向后从原始 URL(第一个)获得 URL。
有什么想法或更简单的解决方案吗?
这是获得更大图片的方法:
/OBJECT-ID/picture?width=500&height=500
或者:
/OBJECT-ID/picture?type=large
另请查看此线程中的答案:Facebook Graph API : get larger pictures in one request
编辑:由于这似乎不适用于对象 ID,您可以从该响应中获取图像:
https://graph.facebook.com/10152843929471041
寻找 "images" 数组。
也可以请求 images
集合 photo
对象,然后搜索 最高分辨率条目。
参见documentation。代码:
MyFacebookWrapper.getBestImage = function(photoId) {
var deferred = new $.Deferred();
var params = { fields: "images" };
FB.api("/" + photoId, "get", params,
function (response) {
console.log("MyFacebookWrapper.getBestImage, response:");
console.log(response);
var images = _.sortBy(response.images, 'width');
var best = _.last(images)
deferred.resolve(best);
}
);
return deferred.promise();
};
用法:
MyFacebookWrapper.getBestImage("photo Id ...").then(function(image) {
console.log(image);
});