0

我已经编辑了我的问题以使其更相关

从我开始学习 R 到现在才不到一个月,我正试图用它来摆脱我们用于报告的与 Facebook 相关的繁琐工作(提取评论)。

使用Rfacebook包,我制作了这个脚本,它提取(1)给定时期页面的帖子,以及(2)对这些帖子的评论。它对于我正在为其进行报告的页面运行良好,但是当我在其他页面上尝试它时,它的帖子评论为零,它报告了一个错误。

这是脚本: 加载库

library(Rfacebook)
library(lubridate)
library(tibble)

设定时间段。随意更改时间。

current_date <-Sys.Date()
past30days<-current_date-30

分配页面。将此编辑到您正在监视的页面*

brand<-'bpi'

对 Facebook 进行身份验证。用你自己的

app_id <- "xxxxxxxxxxxxxxxx"
app_secret <- "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
token <- fbOAuth(app_id,app_secret,extended_permissions = FALSE,legacy_permissions = FALSE)

从页面中提取所有帖子

listofposts <- getPage(brand, token, n = 5000, since = past30days, until = current_date, feed = FALSE, reactions = FALSE, verbose=TRUE)
write.csv(listofposts,file = paste0('AsOf',current_date,brand,'Posts','.csv'))

转换为数据框

df<-as_tibble(listofposts)

转换为向量

postidvector<-df[["id"]] 

获取该期间的帖子数

n<-length(postidvector)

通过循环产生所有评论

reactions<-vector("list",n)
for(i in 1:n){
  reactions[[i]]<-assign(paste(brand,'Comments', i, sep = ""), (getPost((postidvector[i]),token,comments=T,likes=F,n.likes=5000,n.comments=10000))) 
}

将每个帖子的所有评论提取到 CSV

for(j in 1:n){
  write.csv(reactions[[j]],file = paste0('AsOf',current_date,brand,'Comments' ,j, '.csv'))
}

当我在包含零评论的帖子的页面上尝试将评论导出为 CSV 时,出现以下错误:

Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,  : 
  arguments imply differing number of rows: 1, 0

我在流量很大的页面上尝试了它,它也运行良好。一篇帖子有 10,000 条评论,并且提取得很好。:(

提前致谢!:D

4

1 回答 1

2

页面可以受年龄或位置限制。您不能对这些使用应用访问令牌,因为它不包含用户会话,因此 Facebook 不知道您是否可以查看页面内容。您将不得不为这些使用用户令牌或页面令牌。

于 2017-06-06T08:04:41.013 回答