我正在使用Facebook OG SDK创建一个FB应用程序来显示特定的公共Facebook页面的专辑(第一张图片)。
将JS代码放在一起并且运行良好但是我可以看到(出于我们想到的目的) - 每次要求用户登录FB都会非常不方便它工作(即获取访问令牌并将图像拉下来)。
以下是目前的代码:
<script>
// initialize and setup facebook js sdk
window.fbAsyncInit = function() {
FB.init({
appId : '123456789xxx',
xfbml : true,
version : 'v2.7'
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
document.getElementById('status').innerHTML = 'We are connected.';
document.getElementById('login').style.visibility = 'hidden';
} else if (response.status === 'not_authorized') {
document.getElementById('status').innerHTML = 'We are not logged in.'
} else {
document.getElementById('status').innerHTML = 'You are not logged into Facebook.';
}
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
// login with facebook with extra permissions
function login() {
FB.login(function(response) {
if (response.status === 'connected') {
document.getElementById('status').innerHTML = 'We are connected.';
document.getElementById('login').style.visibility = 'hidden';
} else if (response.status === 'not_authorized') {
document.getElementById('status').innerHTML = 'We are not logged in.'
} else {
document.getElementById('status').innerHTML = 'You are not logged into Facebook.';
}
}, {scope: 'email'});
}
// show the first image in a gallery
function getPhotie() {
FB.api(
'/10152939029743105',
'GET',
{"fields":"photos.limit(1){link,images}"},
function(response) {
console.log(response);
document.getElementById('status-photie').innerHTML = "<img src='" + response.photos.data[0].images[0].source + "'>";
});
}
</script>
以下是测试页面中的HTML:
<div id="status-photie" style="border: solid 1px orange;"></div>
<button onclick="getPhotie()">Get photie</button>
<div id="status"></div>
<button onclick="login()" id="login">Login</button>
现在,您需要单击登录按钮才能获取令牌并连接到应用程序(我上面已对其进行了混淆的ID)。然后,如果你点击&#34; Get Photie&#34;按钮,图像加载到div。
我们想要做的(最终目标)是创建一个&#34; tile&#34; Facebook页面相册的第一张图片自动加载到其中 - 无需用户首先登录Facebook即可。
这是否可以远程实现?
我确实找到了另一个似乎暗示它不是How can I avoid asking users to login (connect) to my facebook app again and again?
的帖子