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

泽莱尔B

我正在尝试抓取公共页面的 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('}}','')

        df['Sad'] = df['Sad'].astype(str).str.replace('{\'data\':(.*?)count\': ','')
        df['Sad'] = df['Sad'].str.replace(',(.*?)}}','')

        df['Wow'] = df['Wow'].astype(str).str.replace('{\'data\':(.*?)count\': ','')
        df['Wow'] = df['Wow'].str.replace('}}','')

        df['comments'] = df['comments'].astype(str).str.replace('{\'data\':(.*?)count\': ','')
        df['comments'] = df['comments'].str.replace(',(.*?)}}','')

        df['likes'] = df['likes'].astype(str).str.replace('{\'(.*?)count\':','')
        df['likes'] = df['likes'].str.replace(',(.*?)}}','')

        df['shares'] = df['shares'].astype(str).str.replace('{\'count\': ','')
        df['shares'] = df['shares'].str.replace('}','')

        df['date'], df['time'] = df['created_time'].astype(str).str.split('T', 1).str
        df['time'] = df['time'].str.replace('[+]0000','')

        # Convert NaN's to 0 (as string)
        df['shares'] = df['shares'].str.replace('nan','0')
        df['shares'] = df['shares'].str.replace('Nan','0')
        df['shares'] = df['shares'].str.replace('NaN','0')

        # Convert Series values from str to int
        df['shares'] = df['shares'].astype(int)
        df['likes'] = df['likes'].astype(int)
        df['comments'] = df['comments'].astype(int)
        df['Love'] = df['Love'].astype(int)
        df['Wow'] = df['Wow'].astype(int)
        df['Sad'] = df['Sad'].astype(int)
        df['Angry'] = df['Angry'].astype(int)
        df['Haha'] = df['Haha'].astype(int)


        # Sum over all number columns of one row
        col_list= list(df)
        df['total_reac'] = df[col_list].sum(axis=1)

        # Sort values by 'total_reac' column, descending
        df = df.sort_values(by='total_reac', ascending=False)

        # Convert column from str to datetime
        df['created_time'] = pd.to_datetime(df['created_time'])

        # Filter for dates needed
        df = df[(df['created_time'] > fStart) & (df['created_time'] <= fEnd)]


        # Save Dataframe as csv
        df.to_csv("Facebook_Posts_" + page + ".csv" )



    except Exception as ex:
        print (ex)

    return df



token="my_User__Token_Here (got from my personal  https://developers.facebook.com/tools/explorer)"

sTime = '2018-05-01'
fStart = '2018-05-01'
fEnd = '2018-05-29'


page_id="nytimes"

url="https://graph.facebook.com/3.2/"+page_id+"/posts/?fields=id,created_time,message,shares.summary(true).limit(0),comments.summary(true).limit(0),likes.summary(true),reactions.type(LOVE).limit(0).summary(total_count).as(Love),reactions.type(WOW).limit(0).summary(total_count).as(Wow),reactions.type(HAHA).limit(0).summary(total_count).as(Haha),reactions.type(SAD).limit(0).summary(1).as(Sad),reactions.type(ANGRY).limit(0).summary(1).as(Angry)&access_token="+token+"&limit=100"

dataNYT = getData(page_id, url, sTime, fStart, fEnd)


dataNYT.to_csv("NYT_posts.csv")

这是我现在遇到的错误:

HTTP Error 400: Bad Request

当我尝试在浏览器中输入请求的 url 时,出现此错误:

{
   "error": {
      "message": "Unknown path components: /nytimes/posts",
      "type": "OAuthException",
      "code": 2500,
      "fbtrace_id": "HsN9zi+byTD"
   }
}

有人有想法吗?

卢申

不知道为什么会出现该错误,当我在 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Python从Facebook抓取数据

来自分类Dev

使用Graph API和Python发布到Facebook组

来自分类Dev

使用JavaScript和Graph API邀请用户参加Facebook活动

来自分类Dev

使用SCRAPY和PYTHON从Javascript抓取数据

来自分类Dev

Passport.js和Facebook Graph API

来自分类Dev

如何在使用devise和omniauth-facebook时指定facebook graph API版本

来自分类Dev

Facebook Graph API返回空数据

来自分类Dev

带有Graph API的Android Facebook视频上传-如何使用多部分/表单数据

来自分类Dev

如何在Android中使用Graph API获取喜欢我的Facebook帖子的人的数据

来自分类Dev

如何使用Facebook graph API上传视频

来自分类Dev

如何使用Google API抓取数据

来自分类Dev

如何使用httr包中的oauth2.0_token函数和facebook API?

来自分类Dev

如何使用承诺和递归通过Facebook Graph API检索用户的所有帖子?

来自分类Dev

使用Graph API从Facebook事件中获取照片和视频

来自分类Dev

如何通过Mechanize和Nokogiri抓取数据?

来自分类Dev

在RestFB中使用Graph API阅读Facebook的公开帖子和用户个人资料?

来自分类Dev

如何使用graph API v2.0获取Facebook用户朋友和朋友的个人资料图片?

来自分类Dev

Facebook API 2.1如何查询和获取数据输出

来自分类Dev

如何使用Facebook Open graph API自动从页面中抓取新信息

来自分类Dev

Facebook Graph API返回空数据

来自分类Dev

Facebook Graph API:如何获取缺少的页面,例如运动和兴趣

来自分类Dev

Facebook Graph API:如何访问用户电影?

来自分类Dev

与Facebook Graph API / {user-id} / feed(iOS)一起使用的viewController

来自分类Dev

如何在Facebook Graph API Explorer中测试Friends数据权限

来自分类Dev

如何从返回CSV文件的API抓取数据

来自分类Dev

从Facebook的Graph API存储数据

来自分类Dev

如何通过 Facebook Graph API 2.8 检索用户的生日数据?

来自分类Dev

Facebook 的 Graph API Explorer 目前是否不允许从页面抓取访客帖子?

来自分类Dev

Facebook graph api 公共页面数据

Related 相关文章

  1. 1

    使用Python从Facebook抓取数据

  2. 2

    使用Graph API和Python发布到Facebook组

  3. 3

    使用JavaScript和Graph API邀请用户参加Facebook活动

  4. 4

    使用SCRAPY和PYTHON从Javascript抓取数据

  5. 5

    Passport.js和Facebook Graph API

  6. 6

    如何在使用devise和omniauth-facebook时指定facebook graph API版本

  7. 7

    Facebook Graph API返回空数据

  8. 8

    带有Graph API的Android Facebook视频上传-如何使用多部分/表单数据

  9. 9

    如何在Android中使用Graph API获取喜欢我的Facebook帖子的人的数据

  10. 10

    如何使用Facebook graph API上传视频

  11. 11

    如何使用Google API抓取数据

  12. 12

    如何使用httr包中的oauth2.0_token函数和facebook API?

  13. 13

    如何使用承诺和递归通过Facebook Graph API检索用户的所有帖子?

  14. 14

    使用Graph API从Facebook事件中获取照片和视频

  15. 15

    如何通过Mechanize和Nokogiri抓取数据?

  16. 16

    在RestFB中使用Graph API阅读Facebook的公开帖子和用户个人资料?

  17. 17

    如何使用graph API v2.0获取Facebook用户朋友和朋友的个人资料图片?

  18. 18

    Facebook API 2.1如何查询和获取数据输出

  19. 19

    如何使用Facebook Open graph API自动从页面中抓取新信息

  20. 20

    Facebook Graph API返回空数据

  21. 21

    Facebook Graph API:如何获取缺少的页面,例如运动和兴趣

  22. 22

    Facebook Graph API:如何访问用户电影?

  23. 23

    与Facebook Graph API / {user-id} / feed(iOS)一起使用的viewController

  24. 24

    如何在Facebook Graph API Explorer中测试Friends数据权限

  25. 25

    如何从返回CSV文件的API抓取数据

  26. 26

    从Facebook的Graph API存储数据

  27. 27

    如何通过 Facebook Graph API 2.8 检索用户的生日数据?

  28. 28

    Facebook 的 Graph API Explorer 目前是否不允许从页面抓取访客帖子?

  29. 29

    Facebook graph api 公共页面数据

热门标签

归档