先决条件 – Facebook API |组 1
在本文中,我们将讨论 Facebook API for Python Platform 的实现细节。让我们从下载 Facebook 客户端Python。使用以下Python命令下载 Facebook 客户端 –
pip install facebook-sdk
下载成功后你会看到这样的画面——
现在,让我们从Python的 facebook 模块提供的方法开始。我们将在本文中讨论以下方法——
- 获取对象
- 获取对象
获取对象:
此方法将信息作为与对象 ID 确定的对象关联的dict返回。
Parameters:
id: A string that is a unique ID for the particular Object.
args(optional): agrs are to be passed as query params.
示例#1:
import json
import facebook
def main():
token = "Please replace this line with your access token"
graph = facebook.GraphAPI(token)
profile = graph.get_object('me', fields ='first_name, gender, birthday, email')
# return desired fields
print(json.dumps(profile, indent = 4))
if __name__ == '__main__':
main()
示例#2:
获取有关页面的详细信息(用户是页面的管理员还是有权管理页面)。在继续之前让我们先看看如何确定页面 ID。请按照以下步骤操作:
- 单击右侧的向下箭头并导航到要确定其页面 ID 的页面。
- 单击页面名称以转到该页面。
- 单击页面个人资料图片下方页面左侧的查看更多选项。点击后,您将看到“关于”选项
- 单击“关于”选项。您将看到页面的详细信息。向下滚动到底部,您将找到您的页面 ID。
现在转到Python代码以查找页面的详细信息。
import json
import facebook
def main():
token = "Please replace this line with your access token"
graph = facebook.GraphAPI(token)
page = graph.get_object(id ='PAGEID', fields ='about, can_post, category')
# return desired fields
print(json.dumps(page, indent = 4))
if __name__ == '__main__':
main()
此代码打印有关页面的基本信息(关于),是否允许请求用户在此页面上发布任何内容(can_post)以及页面的类别(类别)。您可以从页面参考中获得完整的字段列表
示例#3:获取有关帖子的详细信息:消息和附件
让我们首先按照以下步骤查找 Facebook 帖子的帖子 ID。
- 在任何帖子上,单击用户名下方提到的日期和时间。
- 该帖子将在新标签中打开。
- 最后一个斜杠(“/”)之后的最后一个数字构成您的帖子 ID。
按照以下步骤查找用户 ID。
- 转到您的个人资料页面,然后右键单击您的个人资料图片。选择选项“复制链接地址”
- 打开记事本并按 Ctrl+V 或右键单击并选择粘贴选项。
- 将粘贴 URL。在“referrer_profile_id”之后最后提到用户ID。
https://www.facebook.com/photo.php?fbid=913492355516001&set=a.187231114642052&type=3&source=11&referrer_profile_id=100000677755756
用于查找帖子详细信息的代码。
import json
import facebook
def main():
token = "Please replace this line with your access token"
graph = facebook.GraphAPI(token)
post = graph.get_object(id ='USERID_POSTID', fields ='message, attachments{description}')
# return desired fields
print(json.dumps(post, indent = 4))
if __name__ == '__main__':
main()
您可以从 Post Reference 获得字段的完整列表。
获取对象:
此方法将 Facebook 社交媒体图表中的所有对象作为dict 返回。字段列表中提到的每个 ID 都映射到一个对象。
Parameters:
ids: A list containing IDs for multiple objects/resources
args:This is optional and if mentioned need to passed as query parameters.
示例#1:获取两个不同帖子的创建时间。
import json
import facebook
def main():
token = "Please replace this line with your access token"
graph = facebook.GraphAPI(token)
post_ids =["USERID_POSTID# 1", "USERID_POSTID# 2"]
posts = graph.get_objects(ids = post_ids, fields ='created_time')
# print creation time of the two posts.
print(json.dumps(posts, indent = 4))
if __name__ == '__main__':
main()
示例#2:获取两张不同照片的评论数。
按照以下步骤在 Facebook 上查找照片 ID。
- 单击要为其标识照片 ID 的 Facebook 照片。
- 找到“照片。 PHP”在网址区域。
- 寻找“fbid”,然后是“photo”后面的数字。 PHP”的 URL 部分。
- 出现在“fbid”标签和“&”符号之间的数字是照片身份证号码。
import json
import facebook
def main():
token = "Please replace this line with your access token"
graph = facebook.GraphAPI(token)
photo_ids =["USERID_PHOTOID# 1", "USERID_PHOTOID# 2"]
photos = graph.get_objects(ids = photo_ids, fields ='comments.summary(true)')
# print total comment count for each photo
print(json.dumps(photos, indent = 4))
if __name__ == '__main__':
main()
参考:
- https://facebook-sdk.readthedocs.io/en/latest/api.html
- https://developers.facebook.com/docs/graph-api/reference