【问题标题】:Facebook post extraction using Javascript sdk使用 Javascript sdk 提取 Facebook 帖子
【发布时间】:2017-10-03 06:52:10
【问题描述】:

我正在尝试制作一个应用程序来帮助我提取用户的帖子,甚至使用 Facebook 登录 API 提取他们的电子邮件。我尝试了以下方法,但无法纠正我可以从哪里提取文本帖子并将其用于我的 NLP 实验目的。

见以下代码:

<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">
        <!-- Facebook Login Function -->
        <div id="fb-root"></div>
    <script>(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#xfbml=1&version=v2.10&appId=APP-ID";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    function checkLoginState() {
      FB.getLoginStatus(function(response) {
        statusChangeCallback(response);
      });
      FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    console.log(response.authResponse.accessToken);
  }
  FB.api('/me', function(response) {
    console.log(JSON.stringify(response));
});
});
    }
    </script>

<div class="fb-login-button" data-max-rows="1" data-size="large" data-button-type="continue_with" data-show-faces="false" data-auto-logout-link="false" data-use-continue-as="true"></div>

我只是想将帖子传递给我可以进一步移动并使 NLP 流程为其工作的函数。

这是作为 NLP 过程工作的函数:

<script>

//Validation for Paste Text field   
    function validate()
{
    console.log( "Inside validate");
    //return false;
     var obj1 = document.getElementById('for_analysis').value;
     console.log("Pring value of text area")
      console.log( obj1);

         if(obj1.trim() == '') 
         {      
            console.log( "Empty space found");
              alert("Please Enter some Text before submitting");
              //obj1.focus();
              return false;       
         }
         else{
         console.log( "No empty space found");
          $(".trial").show();
         //document.getElementById("chkjq").className = "chkjq";
           return true;
        }
}
    //paste this code under head tag or in a seperate js file.
    // Wait for window load
    $(document).ready(function(){
console.log( "inside jquery");
    $(window).on('load',function() {
        // Animate loader off screen
        console.log( "Page Loading");
        //$(".se-pre-con").fadeOut("slow");;
        //$(".trial").fadeOut("slow");;
        //$("#download").remove();
    });

     $(".chkjq").click(function(){
        //console.log( "Hello, world!");
       //$(".trial").show();
    });
    $("#filebutton").click(function(){
        //console.log( "Hello, world! file button");
       $(".trial").show();
    });
    });
    </script>

上述函数应用于一个文本区域,我从中获取文本并对其进行处理。 :

<form action ="/analyze/" method="POST" name ="sendtext" id="sendtext"  onsubmit="javascript:return validate()" >
            {% csrf_token %}
         <textarea  id ="for_analysis"  name ="for_analysis" form="sendtext" style="background-color: lightgrey"></textarea> 
        <!-- <input id="for_analysis" type="textarea" name="for_analysis" > -->
        <br/>
        <button type="submit" class="box__button chkjq" id = "chkjq">UPLOAD</button> 
        <!--<button id="ana_text">Analyze</button> -->
        <br/></form>

现在我想通过从 FB 中提取文本帖子来执行相同的操作。请让我知道我能做些什么来使它正确?

【问题讨论】:

  • 到底是什么问题?老实说,我不确定你的问题是什么。如果你想从 facebook 中提取文本,只需使用 api 来获取帖子。你被困在哪里了?
  • 我被困在 API 的使用中......正如你在上面的代码中看到的那样,我试图让应用程序工作,但看不到我必须做什么来提取文本和配合NLPvalidate()的功能使用,这样我就可以处理帖子了。
  • 我只看到一个对 /me 的 api 调用,它只会返回基本的用户信息。此外,您的登录按钮中没有登录回调,并且您正在使用 FB.getLoginStatus 2 次 - 您应该只在页面加载时使用它,使用异步回调......那里缺少很多东西,你应该点击文档并查看 js sdk 的基本实现。
  • 这也许对你也有帮助,阅读全文:devils-heaven.com/facebook-javascript-sdk-login
  • 是的,您的链接很有帮助...我已经检查过了。但问题又是我无法理解如何提取帖子?

标签: javascript html facebook facebook-graph-api facebook-javascript-sdk


【解决方案1】:

快速示例 - 使用 FB.login 而不是登录按钮:

const getPosts = () => {
    FB.api('/me/posts', (response) => {
        console.log(response);
    });
};

const getEmail = () => {
    FB.api('/me', {fields: 'name,email'}, (response) => {
        console.log(response);
    });
};

FB.login((response) => {
    if (response.authResponse) {
        //user just authorized your app
        getPosts();
        getEmail();
    }
}, {scope: 'email,user_posts'});

其他信息:http://www.devils-heaven.com/facebook-javascript-sdk-login/

顺便说一句,您还可以结合 API 调用:

FB.api('/me', {fields: 'name,email,posts'}, (response) => {
    console.log(response);
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
  • 1970-01-01
相关资源
最近更新 更多