有没有办法通过可以共享的 Facebook API (graph / fql)获取Facebook相册的公开 链接那些不在Facebook上的人?
此相册无法公开访问。它受用户设置的专辑的共享权限限制。但是我正在寻找一种方法来生成这个受限制的专辑的公共链接,这样无论谁发送此链接都可以无条件地查看该专辑。
我知道这可能通过Facebook网站上的分享相册功能通过分享对话框:您可以通过给他们链接将此相册发送给朋友或亲戚
我无法在图谱API中找到解决方法。
编辑:我在谈论Facebook上通过此功能提供的公共链接:facebook.com/help/124590517619792答案 0 :(得分:1)
您没有提供示例或测试用例,也没有提供任何API代码。我将使用Facebook用户名 Hostess 的以下链接作为示例( Twinkies万岁!)。:
主要:https://www.facebook.com/Hostess
相册:https://www.facebook.com/Hostess/photos_albums
首先,我们需要Facebook用户号码
您可以执行GET
请求或在浏览器中输入此请求:
Facebook用户信息:http://graph.facebook.com/Hostess
要继续此示例,我们将使用上一步提供的Facebook编号:
Facebook ID:145369525544570
有没有办法通过网站获取Facebook相册的公共链接 Facebook API(graph / fql),可以与那些不在的人共享 Facebook的?
是的,有办法!此链接将为您提供所有相册的json
结果,在这种情况下为6:
通过json
:http://graph.facebook.com/145369525544570/albums
要限制返回的结果,您可以使用?limit=1
(其中1是返回的相册数量):
Facebook专辑(1)通过json
:http://graph.facebook.com/145369525544570/albums?limit=1
此相册无法公开访问。它受到份额的限制 用户设置的相册的权限。但我正在寻找一种方法 生成此受限制专辑的公共链接,无论是谁 发送此链接可以无条件查看相册。
你运气不好,没有办法。但是,您无需成为Facebook会员即可查看相册中的图像。使用上一步中的json
数据可以在相册公开时使用。只需使用简单的GET
请求:
jsFiddle DEMO: Facebook Albums Links from Facebook ID
// Console log messages are provided, activate your browsers console.
$.ajax({
url: 'http://graph.facebook.com/145369525544570/albums',
dataType: "json",
success: function(yourVar) {
// Make sure the request, 1 json object, was returned.
if (yourVar) {
console.log('This is the jQuery Object received. Click on it to explore contents');
console.log(yourVar);
// This will parse the Objects received in 'data' variable.
// Having said that, it's coincidental the data the wrapped in a 'data' name.
$(yourVar.data).each(function(index) {
// Only process Objects that have valid Album links.
// Having said that, only Photo Albums are returned in initial data, not Video Albums.
if(this.link){
// Display in console the jQuery zero indexed number
console.info('Album Index object: ' + index);
//
// Display in HTML via append, the same information.
$('body').append('<b>Album Index Object: </b>' + index + '<br />');
// Display in console the Album Names available
console.info('Name: ' + this.name);
//
// Display in HTML via append, the same information.
$('body').append('<b>Name: </b>' + this.name + '<br />');
// Display in console the Album Name Url;
console.log('Url: ' + this.link);
//
// Display in HTML via append, the same information.
$('body').append('<b>Url: </b>' + this.link + '<br />');
// Display in console dashed lines before next item is shown.
console.log('-------');
//
// Display in HTML via append, the same information.
$('body').append('<hr><br /><br />');
}
});
} else {
console.log('Was data expected? Check your jQuery or JavaScript for errors.');
}
}
});
// Power-Tip!
// You can also use .ajax() with a YQL Rest Query url.
// See YQL Console with Rest Statement at:
// http://developer.yahoo.com/yql/console/?q=SELECT%20data.link%20FROM%20json%20WHERE%20url%3D%22https%3A%2F%2Fgraph.facebook.com%2F145369525544570%2Falbums%22&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys
// As seen there, the data.link is providing just the links.
// Change data.link to * to see all data nodes available in json tree.
// That being said, your .ajax() url for above is at the bottom: The Rest Query.
答案 1 :(得分:0)
照片和相册的Facebook设置:
When I share something, how do I choose who can see it?
上述Facebook文档指出,如果通过仅限我将相册设置为私有,则只有您可以使用 ,即使您可能拥有可共享的链接对于它。
为了证明相册/照片确实已锁定且无法共享,以下是使用 Yahoo进行的实际实时测试!查询语言以对锁定的相册执行请求:
随意点击图片访问上述YQL声明。
可以肯定的是,上面的示例本身表明链接不是问题,内容确实是主题,因为锁定的项目需要Facebook令牌密钥