我正在编程的网站的一部分,用户可以通过手动输入每个页面的用户名或ID手动将Facebook页面添加到列表中。提交后,我连接到Facebook图形API以检查所有提供的ID或用户名是否有效。
我只能接受Facebook页面,而不是个人资料。
图形API用于返回一个字段,告诉返回的每个节点的类型(用户,页面,应用程序......),但它们不再提供该字段。
以下是页面ID(/ {node-id})
的示例输出{
"about": "http://www.365juegos.com",
"can_post": true,
"category": "Entertainment website",
"is_published": true,
"new_like_count": 1,
"offer_eligible": true,
"promotion_eligible": true,
"talking_about_count": 1,
"unread_message_count": 0,
"unread_notif_count": 3,
"unseen_message_count": 0,
"username": "365juegos",
"website": "http://www.365juegos.com",
"were_here_count": 0,
"id": "415033875603",
"name": "365 juegos",
"link": "https://www.facebook.com/365juegos",
"likes": 1289,
"cover": {
"cover_id": "10151386385585604",
"source": "https://scontent-a.xx.fbcdn.net/hphotos-prn1/t1/s720x720/64727_10151386385585604_2060575120_n.jpg",
"offset_y": 0,
"offset_x": 0
}
}
这是来自个人资料ID(/ {node-id}):
{
"id": "1013953243",
"name": "Nilo Vélez",
"first_name": "Nilo",
"last_name": "Vélez",
"link": "https://www.facebook.com/nilovelez",
"gender": "male",
"timezone": 1,
"locale": "en_US",
"verified": true,
"updated_time": "2014-03-08T22:04:45+0000",
"username": "nilovelez"
}
首先,我查找了赞字段的存在,因为它是页面独有的,但是如果像y计数那么它就不会返回。
其他一些字段如* first_name *或 locale 是个人资料所独有的,但我不确定它们是否会一直存在,或者用户是否能够在不久的将来隐藏它们。
有什么想法可以简单地将页面与个人资料区分开来吗?
答案 0 :(得分:19)
对象的类型通常属于元数据,除非您指定,否则不会随请求一起返回。为了请求对象的type
,请在请求结束时添加?metadata=1
。类似的东西:
http://graph.facebook.com/{object_id}?metadata=1
例如,请求:
http://graph.facebook.com/1013953243?metadata=1
将返回以下数据:
{
"id": "1013953243",
"name": "Nilo V\u00e9lez",
"first_name": "Nilo",
"last_name": "V\u00e9lez",
"gender": "male",
"locale": "en_US",
"username": "nilovelez",
"metadata": {
"connections": XXX
.
.
.
.
.
.
"type": "user"
}
}