我试图使用Ajax捕获facebook数据并将其写入名为test.txt的文本文件中

时间:2014-04-16 22:34:24

标签: javascript ajax facebook mongodb

我按照本页的第二个答案,除了我用一个名为test.txt的简单空文本文件替换了复杂的php部分。我没有收到任何错误消息,但文件仍然是空的(我似乎无法将数据写入我的文件;有没有人知道为什么?更好的是,我很乐意写数据直接到mongodb数据库!Getting userdata using Facebook Login Javascript SDK

我的代码如下:

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '753236104711327',
      status     : true,
      xfbml      : true
    });

FB.login(function(response) {
if (response.authResponse) {
 console.log('Welcome!  Fetching your information.... ');
 FB.api('/me', function(response) {
   console.log(response);

$.ajax(
{
type : 'POST',
data : response, //all data 
url : 'test.txt',
success :   function()
{
console.log(response.name)
    }
});

});

} else {
 console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'user_birthday, friends_birthday, basic_info, user_about_me,   friends_about_me, user_education_history, friends_education_history, user_hometown, friends_hometown, user_interests, friends_interests, user_location, friends_location, user_questions, friends_questions, user_relationships, friends_relationships, user_relationship_details, friends_relationship_details, user_religion_politics, friends_religion_politics, user_work_history, friends_work_history'});
};

(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/all.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您在此处所做的是向文本文件发送POST请求,除非您已将服务器设置为捕获请求,否则该文本文件确实没有意义。

data:调用的$.ajax()部分将给定的对象(在本例中为您的response对象)转换为查询字符串,然后将其作为请求的一部分发送

这几乎就像你在地址栏中输入了这个:

http://your.website.net/path/to/test.txt?responseProperty1=someData&responseProperty2=someOtherData

test.txt没有办法处理查询字符串,因为它只是一个空文本文件。

您可能不得不使用像PHP这样的服务器端语言将数据写入您的文件。然后,您可以将ajax请求发送到服务器上能够处理请求参数的文件:

$.ajax({
  type: 'POST',
  data: response,
  url: 'handle_response.php',
  success: function() {
    // it worked
  }
});

我在PHP上并不擅长,也许你宁愿使用别的东西,所以我会把它留在那里,但我希望这有帮助

答案 1 :(得分:1)

您无法使用Javascript将数据写入文本文件。如果要将数据写入文本文件或Mongo,则需要将其发送到服务器并让服务器处理写入文件或数据库