如何在Javascript SDK中处理图形api的结果以获取用户组的列表

时间:2014-07-11 08:46:55

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

在我的Facebook应用中。我需要获取用户组的列表。但问题是我不擅长JavaScript,因此无法处理结果。使用graph api我可以使用

获取用户名
response.name

但在群组列表中,它看起来不同。脚本我以前得到组列表

FB.api(
"/me/groups",
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);

但我不知道如何处理。当我在图形资源管理器中尝试它时结果就像

{
"data": [
{
"name": "jindagi na melegi dubara", 
"unread": 9, 
"bookmark_order": 999999999, 
"id": "1398847113716538"
}, 
{
"name": "Online IT Clubs", 
"unread": 25, 
"bookmark_order": 999999999, 
"id": "556540827777044"
}, 
{
"name": "Bank exams preparation(2014)", 
"bookmark_order": 9, 
"id": "663444460375219"
 }, 
 ], 
"paging": {
 "next": "https://graph.facebook.com/v2.0/802942813062683/groups?   icon_size=16&limit=5000&offset=5000&__after_id=enc_AeyYqXtvk-KAYVvplkod74WiEHqLL6BfmTfuR5gchidafW3rWME4kpqm5YdHLPYkVw0o93poJ7Ib41eOoitEi-Tk"
}
}

我想在我的应用中使用群组ID和姓名。你能告诉我如何处理结果吗?提前谢谢。

编辑:我还会检查以下编辑内容 编辑1

FB.api(
"/me/groups",
function (response) {
if (response && !response.error) {
response.data[0].name
}
}
);

但没有结果显示。

编辑2

FB.api(
"/me/groups",
function (response) {
if (response && !response.error) {
for (var l = response.data.length, i = 0; i < l; i++) {
var obj = response.data[i];
console.log(obj.name);
console.log(obj.id);
}
}
}
);

再次出现同样问题

4 个答案:

答案 0 :(得分:2)

由于详细信息位于数组格式的data属性中,您应该迭代response.data并提取name和其他详细信息

您的回复结构是

响应

--data
----[
------{
------name
------unread
------bookmark_order
------id
------}
------{
------....
------}
------]
----paging
------next

代码(jQuery)

 $.each(response.data, function (i, obj) {
    console.log(obj.name);
    console.log(obj.unread);
    console.log(obj.bookmark_order);
    console.log(obj.id);
 });

代码(JS)

for (var l = response.data.length, i = 0; i < l; i++) {
    var obj = response.data[i];
    console.log(obj.name);
    console.log(obj.unread);
    console.log(obj.bookmark_order);
    console.log(obj.id);
}

答案 1 :(得分:0)

取决于您希望如何显示信息。例如,您可以使用jQuery或其他库来动态更新<div>元素内容。

看看这个JSFiddle:http://jsfiddle.net/eCy58/1/

答案 2 :(得分:0)

解决此问题的一种方法:(在您知道response.fields之前)

FB.api(
"{your rwquest}",
function (response) {
  if (response && !response.error) {

    var {your_Arrey} = [] ;
    response['data'].forEach(function(data) {
    if (data.status != null)
    {your_Arrey}.push(data.{1}+data.{2}+'<br>');});
    console.dir({your_Arrey});

  }
}

将{your rwquest},{your Arrey}和{1},{2}与您的数据进行对比。 在你的Arrey工作正常之后

答案 3 :(得分:0)

这很容易。

&#13;
&#13;
	FB.api('/me/groups', function(response) {
	  var l = response.data.length;
	  for (i = 0; i < l; i++) {
	    var obj = response.data[i];
	    var groupName = obj.name;
	    var groupId = obj.id;
	  }
	});
&#13;
&#13;
&#13;