Facebook API Javascript JSON 响应

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11062007/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 11:59:21  来源:igfitidea点击:

Facebook API Javascript JSON response

javascriptfacebookfacebook-graph-apifacebook-javascript-sdk

提问by dominic

function getUser()
{
    FB.api('/me', function(response) {
       console.log('Response is '+response);
       alert('Your name is ' + response.first_name);
       alert('Your last name is ' + response.last_name);
       alert('Your Gender is ' + response.gender);
       alert('Your status is '+response.username);
    }

How can I get the entire response like this below printed?

我怎样才能得到像下面这样的整个响应?

{
  "id": "blah blah", 
  "name": "blah blah", 
  "first_name": "blah blah", 
  "last_name": "blah blah", 
  "link": "https://www.facebook.com/blah blah", 
  "username": "blah blah", 
  "hometown": {
    "id": "106442706060302", 
    "name": "Pune, Maharashtra"
  }, 
  "location": {
    "id": "106377336067638", 
    "name": "Bangalore, India"
  }, 
  "bio": "╔══╗? ??\n║██║\n║¨o??\n╚═|???●???|?lιlllι ? I LoVe MuZiK!!\n\n█║▌│█│║▌║│█║▌│║\n? Copyright ? 2012 ?\n█║▌│█│║▌║│█║▌│║\n\nReVoLt", 
  "gender": "male", 
  "relationship_status": "Single", 
  "timezone": 5.5, 
  "locale": "en_GB", 
  "verified": true, 
  "updated_time": "2012-06-15T05:33:31+0000", 
  "type": "user"
}

Also by respose.name am getting the name of the user. How can I get the location in the parameter location as it is a JSON array?

同样通过 respose.name 我正在获取用户的姓名。我如何获取参数位置中的位置,因为它是一个 JSON 数组?

采纳答案by Eswar Rajesh Pinapala

use JSON.stringify(response); it should print the entire object.

使用 JSON.stringify(response); 它应该打印整个对象。

use JSON.parse() or jQuery.parseJSON(); to parse and get any properties of the response object examples here : jsfiddle.net/epinapala/HrfkL and here : jsfiddle.net/epinapala/zfWWv/3

使用 JSON.parse() 或 jQuery.parseJSON(); 在此处解析并获取响应对象示例的任何属性:jsfiddle.net/epinapala/HrfkL 和此处:jsfiddle.net/epinapala/zfWWv/3

    var obj2 = JSON.parse('{"id":"579156356","name":"Vishal Jethani","first_name":"Vishal","last_name":"Jethani","link":"https://www.facebook.com/vishal.jethani","username":"vishal.jethani","hometown":{"id":"106442706060302","name":"Pune, Maharashtra"},"location":{"id":"106377336067638","name":"Bangalore, India"},"bio":"bye bye to bad characters","gender":"male","relationship_status":"Single","timezone":5.5,"locale":"en_GB","verified":true,"updated_time":"2012-06-15T05:33:31+0000","type":"user"}');
alert("Parsing with Json : " + obj2.location.name);?

For multidimensional array as asked by the requester : THis should work : http://jsfiddle.net/epinapala/WQcDg/

对于请求者要求的多维数组:这应该有效:http: //jsfiddle.net/epinapala/WQcDg/

var obj2 = JSON.parse('{"work":[{"employer":{"id":"185998961446429","name":"Pvt Ltd"}}]}');

alert("Parsing with Json : " + JSON.stringify(obj2.work[0].employer.name));

回答by Googlian

Use Jquery get Json method isted using pure javascript,

使用 Jquery get Json 方法使用纯 javascript,

  1. You need to get Accesstoken
  2. Replace your access token below the texted YOUR_ACCESS_TOKEN field
  1. 您需要获取访问令牌
  2. 在发短信的 YOUR_ACCESS_TOKEN 字段下方替换您的访问令牌

I used this library to get the date formatted, https://github.com/datejs/Datejs

我使用这个库来获取格式化的日期, https://github.com/datejs/Datejs

    $.getJSON("https://graph.facebook.com/5973249561/events/?access_token=YOUR_ACCESS_TOKEN&fields=id,name,description,start_time,place,cover,end_time&limit=4",
      function(result){
        for(x = 0; x < result.data.length; x++) {
          var id = result.data[x].id;
          var name = result.data[x].name;
          var cover = result.data[x].cover.source;
          var date = new Date(result.data[x].start_time);
          var place = result.data[x].place.name;
          var day = date.toString('dd');
          var month = date.toString('MMM');
          var url = 'https://facebook.com/'+id;
          var time = date.toString("hh:mm tt");
          $("#evt").append(name);
        }
      });

回答by JDev

i think you have to use FB Graph api. and if you want more information then you have to use like this

我认为你必须使用 FB Graph api。如果你想要更多的信息,那么你必须像这样使用

https://graph.facebook.com/579156356

https://graph.facebook.com/btaylor?access_token=AAAAAAITEghMBAHTRFEKjKcvFe1W2NJTu1Gsy20cNWEe0Dh98KoOhJEInZB1kXrMprNUaN6nq8FZA7YMZBvNVLwuz6pglh1SIBbZCnEECOAZDZD

i am useing like this.

我是这样用的。

function(evt){
     console.log(evt.target.responseText);
     var FB_obj = JSON.parse(evt.target.responseText);
     console.log("fb id >>"+FB_obj.id);
     console.log("fb name >>"+FB_obj.name);
}