我必须创建一个网页,我需要在Facebook页面上显示过去或即将发生的所有事件。我必须回顾每一个的标题,描述,图像,时间和地点,并用它制作一个盒子。 在那之后,我必须回顾所有感兴趣的人。
我是一个尝试做大事的初学者!非常感谢你。
答案 0 :(得分:0)
这不是一个简单的问题 - 我刚刚做了这个,所以会给你一个开始。
您需要使用Facebooks Graph API来获取数据,您需要阅读Graph API以及如何使用它。可以找到文档here。值得注意的是,由于安全漏洞,API目前并未向新开发人员提供所有服务,但您可以获得最多 - 阅读此here。
您可以使用任何语言查询API,但我建议使用python并使用请求模块。或者你可以使用this SDK,这会让事情变得更容易,相信我!使用SDK,您需要获取可以从here获得的用户访问令牌。
<强> SDK 强>
使用SDK可以做到这一点
import facebook
graph = facebook.GraphAPI(access_token="your_token", version="2.12")
event = graph.get_object(id='event_id',
fields='attending_count,declined_count')
print(event['attending_count'])
print(event['declined_count'])
您可以在字段列表中添加更多字段。但是,您可以使用您选择的任何语言来请求数据,因为您只需构建自己的网址即可。
图形API&amp;请求强>
这是我在python中使用查询API的请求的方式。
import requests, json
#Make a requests session to fetch data from URL's
session = requests.Session()
session.mount('https://', requests.adapters.HTTPAdapter(max_retries=10))
#API base URL
baseUrl = 'https://graph.facebook.com/v2.11/'
#Fields you want to get
fields = ['id', 'name', 'start_time', 'end_time', 'description', 'place']
#replace CLIENT_ID and CLIENT_SECRET with ones from a facebook app (make one)
tokenPath= 'oauth/access_token?client_id={0}&client_secret={1}&&'\
'grant_type=client_credentials'.format(CLIENT_ID, CLIENT_SECRET)
#Get the generated token
token = session.get(baseUrl + tokenPath).json()['access_token']
event = session.get(baseUrl, params={
"ids": "event_id",
"fields": ",".join(fields),
"access_token": token,
}
).json()
print(event["name"])
print(event["place"])
你可以制作一个facebook应用here,这是CLIENT_ID
&amp; CLIENT_SECRET
来自。
为什么要使用网址请求而不使用SDK?
使用SDK,生成的用户访问令牌每天都会过期,可以延长它们,但仅限60天。如果你想使用SDK,它有一个内置的方法,允许你扩展令牌,以扩展你需要创建一个Facebook应用程序的令牌。它也可以使用this website扩展令牌,虽然我无法保证其安全性 - 它可能会访问和利用您的数据。
使用SDK扩展令牌:
import facebook
graph = facebook.GraphAPI(user_access_short_lived_token)
extended_token = graph.extend_access_token(app_id, app_secret)
print(extended_token)
使用URL方法,您可以在运行时创建客户端访问令牌(阅读有关用户访问令牌与客户端访问令牌here的内容),只要您的应用处于活动状态,该令牌就有效。因此,如果您要使用它或者想要创建它而不必更改/扩展令牌,那么请使用URL方法。
希望这能让你开始。