2015-10-14 57 views
0

我正在尝试获取一些Facebook组的成员数量。我试图玩Facebook Graph API,但它不起作用:如何将Facebook群组的成员数量转换为Google电子表格?

function facebook(url) { 
    var jsondata = UrlFetchApp.fetch('http://graph.facebook.com/http://www.facebook.com/groups/449592401822610/?ref=br_rs'); 
var object = Utilities.jsonParse(jsondata.getContentText()); 
return object.shares; 
} 

有没有可能这样做? 感谢您的帮助

[更新] 有时我没有该组的ID。我写这个来解决这个问题,但它不起作用...

function facebook(group) { 
    if (isNaN(group) == true) { 
    var jsondata1 = UrlFetchApp.fetch('https://graph.facebook.com/search?q='+group+'&type=group&access_token={my token}'); 
    var object1 = Utilities.jsonParse(jsondata1.getContentText()); 
    var id = object1.data.id; 

    var jsondata2 = UrlFetchApp.fetch('https://graph.facebook.com/v2.5/'+id+'/members?summary=true&access_token={my token}'); 
    var object2 = Utilities.jsonParse(jsondata2.getContentText()); 
    return object2.summary.total_count; 
    } 
    else { 
    var jsondata = UrlFetchApp.fetch('https://graph.facebook.com/v2.5/'+group+'/members?summary=true&access_token={my token}'); 
    var object = Utilities.jsonParse(jsondata.getContentText()); 
    return object.summary.total_count; 
    } 
} 

任何想法?

回答

3

使用图形API

https://graph.facebook.com/v2.5/449592401822610/members?summary=true&access_token={user-access_token} 

你会得到回应这样,如果它是封闭的群体

{ 
"data": [ 

], 
"summary": { 
    "total_count": 4113 
} 
} 

如果是公共团体,您还将收到会员详细信息data部分

好运

注意:这只会返回计数< 5000成员。如果你的团队接近5000或超过5000,它将返回4897,4756或其他“随机”数字,但永远不会返回超过5000.

+0

它的工作非常感谢! – AlphaNico

+0

干杯...... :) –

+0

我还有一个问题,有时在我的名单中,我没有该组的ID,但他的名字。我试图写一个函数来获取ID,但它不起作用,你看到我有什么错误吗?谢谢(请参阅问题的更新) – AlphaNico

0

它看起来像在你的代码的URL是错误的,我猜应该是

http://graph.facebook.com/groups/449592401822610/?ref=br_rs 
+0

谢谢,当我在我的Web浏览器中输入此URL时,我得到: { “错误”:{ “消息”: “访问令牌需要请求此资源。”, “类型”: “OAuthException”, “代码”:104, “fbtrace_id”:“DAUjkZeHqRr “ } } – AlphaNico

+0

听起来像你需要将访问令牌添加到URL –

相关问题