为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Graph API 和 User Token 抓取 Facebook 数据?

如何使用 Graph API 和 User Token 抓取 Facebook 数据?

智慧大石 2021-11-16 15:36:14
我正在尝试抓取公共页面的 Facebook 数据。我几个月前(可能是 10 个月前)使用的代码运行良好。现在,当我想继续那个项目时,但代码不再工作了。我曾经使用我的私人用户令牌,它会在几分钟后过期。但这对我的用例来说已经足够了。我不需要 App 和 App Review 等来获得永久令牌。这是代码:def getData(page, urlToConnect, startTime, filterStart, filterEnd):    posts = []    found = False    try:        while (True):            #print(url)            facebook_connection = urlopen(urlToConnect)            data = facebook_connection.read().decode('utf8')            json_object = json.loads(data)            #posts=json_object["data"]            allposts=json_object["data"]            allposts = np.asarray(allposts)            created = startTime            for i in range(0,100,1):                if (pd.to_datetime(allposts[i]['created_time']) > pd.to_datetime(created)):                    posts.append(allposts[i])                else:                    print(" found date at this index: ", i)                    posts.append(allposts[i])                    found = True                    break;                if (i == 99):                    urlToConnect = json_object["paging"]["next"]            if (found == True):                break;         df=pd.DataFrame(allposts)        df['Angry'] = df['Angry'].astype(str).str.replace('{\'data\':(.*?)count\': ','')        df['Angry'] = df['Angry'].str.replace(',(.*?)}}','')        df['Haha'] = df['Haha'].astype(str).str.replace('{\'data\':(.*?)count\': ','')        df['Haha'] = df['Haha'].str.replace('}}','')        df['Love'] = df['Love'].astype(str).str.replace('{\'data\':(.*?)count\': ','')        df['Love'] = df['Love'].str.replace('}}','')这是我现在遇到的错误:HTTP Error 400: Bad Request当我尝试在浏览器中输入请求的 url 时,出现此错误:{   "error": {      "message": "Unknown path components: /nytimes/posts",      "type": "OAuthException",      "code": 2500,      "fbtrace_id": "HsN9zi+byTD"   }}有人有想法吗?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

不知道为什么会出现该错误,当我在 API Explorer 中尝试该 API 调用时,我得到了正确的错误:


{

  "error": {

    "message": "(#10) To use 'Page Public Content Access', your use of this endpoint must be reviewed and approved by Facebook. To submit this 'Page Public Content Access' feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review.",

    "type": "OAuthException",

    "code": 10,

    "fbtrace_id": "AZJ2HjKFmkW"

  }

}

您确实需要一个应用程序,并且您确实需要 App Review。为了访问您不拥有的页面,您必须获得 Facebook 批准的“页面公共内容访问”。之后,您甚至可以使用永不过期的应用程序访问令牌。但是您仍然需要一个应用程序,用于任何 API 访问,始终。


更多信息:https : //developers.facebook.com/docs/apps/review/feature/?locale=de_DE#reference-PAGES_ACCESS


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信