显示Facebook专辑而不要求用户登录Facebook

时间:2016-08-12 04:17:03

标签: javascript facebook facebook-graph-api

我正在使用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?

的帖子

0 个答案:

没有答案