Facebook登录/图表API - 开始使用localhost和http(而不是https)

时间:2018-05-09 02:28:11

标签: django facebook-graph-api localhost

我在过去几个小时里一直在研究和进入圈子。非常感谢帮助。我的设置:

  • Mac OS
  • Django 2.0.2(我使用python manage.py runserver处理localhost)
  • 我的应用网址:http://localhost:8000/
  • 尝试使用Facebook登录/ Facebook API管理网页

我只是尝试登录以设置访问令牌 - 遵循Javascript SDK这似乎是一条直接登录的路径。但是,在控制台上我收到此错误:

Insecure Login Blocked: You can't get an access token or log in to this app from an insecure page. Try re-loading the page as https://

这似乎有很好的记录,但answers I am reading看起来很旧。截至目前,产品" Facebook登录"有一个名为"强制HTTPS"我刚刚创建并想要测试的应用程序无法更改(这是"是")。显然,如果没有HTTPS域,我就无法做到这一点,尽管有些帖子说不然。这让我开始研究如何获得安全https://localhost设置,但这似乎很复杂,我希望有一些我错过的东西,所以我可以专注于学习Facebook Graph API。

我的代码是裸露的,只是尝试使用Javascript SDK登录,一旦我过去了,我会使用Python在会话中管理它。欢迎反馈。

<body>

    <!-- Facebook SDK: https://developers.facebook.com/docs/javascript/quickstart -->
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId            : '**App ID here**',
          autoLogAppEvents : true,
          xfbml            : true,
          version          : 'v3.0',
          cookie           : true /* override setting */
        });

        /* testing login with alert */
            FB.getLoginStatus(function(response) {
              if (response.status === 'connected') {
                alert('logged in');
                console.log('Logged in.');
              }
              else {
                alert('NOT logged in');
                FB.login();
              }
            });
      };

      (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 = "https://connect.facebook.net/en_US/sdk.js";
         fjs.parentNode.insertBefore(js, fjs);
       }(document, 'script', 'facebook-jssdk'));
    </script>

另外,要在HTTP中获取令牌,我是否应该像Facebook描述的那样手动执行此操作? https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow - 我接下来尝试这个,但我真的很喜欢这个论坛上分享的任何专业知识!谢谢。

1 个答案:

答案 0 :(得分:1)

我也面临同样的问题,似乎没有办法在经过数小时的研究后绕过SSL设置(即使是本地开发)。因此,我也将设置一个HTTPS服务器。

以下是我发现的一些有用链接:

Insecure Login Blocked: You can't get an access token or log in to this app from an insecure page. Try re-loading the page as https://

Enable SSL in Apache (OSX)

Local SSL websites on macOS Sierra

How to set up stress-free SSL on an OS X development machine

希望这会有所帮助:)