gpt4 book ai didi

r - 在 Facebook 中使用 try Catch 或其他处理调用 API 错误

转载 作者:行者123 更新时间:2023-12-03 08:30:37 25 4
gpt4 key购买 nike

我有一个可能包含错误的 facebook 用户名列表。我想在其中很多人上调用 getUsers 并了解每个人有多少喜欢。如果 getUsers 遇到错误的用户名,我想将其从列表中删除并重试。

我想在 Rfacebook 中执行此操作(但如果答案是我必须使用 httr 并自己编写 GET 请求,那就这样吧)。

load("fbCred.RData") # you will need a Facebook credential to execute this

library(Rfacebook)

fb_users <- c("brucespringsteen","coldplay")
fb_likes <- tryCatch(getUsers(users=fb_users,token=fbCred)$likes)
fb_likes # Returns: [1] 4807200 36768913

fb_users <- c("brucespringsteen","coldplay","This-Bad-Name-Will-Fail")
fb_likes <- tryCatch(getUsers(users=fb_users,token=fbCred)$likes)
# Returns:
# Error in callAPI(query, token) :
# (#803) Some of the aliases you requested do not exist: This-Bad-Name-Will-Fail
if(inherits(fb_likes,"error")){
# I want to remove the one that failed from the list of users and try again.
# But the callAPI error never makes it into fb_likes.
}

有没有办法在 Rfacebook 中做到这一点?如何检索坏用户的名称,以便我可以将其从列表中删除并重试?

编辑:我知道我可以一个一个地遍历用户名。这是我目前的解决方法(使用 adply),但需要更长的时间。

最佳答案

该错误属于“try-error”类,而不是“error”。此外,您需要使用 try ,而不是 tryCatch :

fb_likes <- try(getUsers(users=fb_users,token=fbCred)$likes)
if(inherits(fb_likes, "try-error")) { ... }

应该管用。 tryCatch更复杂,需要不同的结构,例如:
tryCatch(
fb_likes <- getUsers(users=fb_users,token=fbCred)$likes,
error=function(e) {
err.msg <- conditionMessage(e)
...
} )

关于r - 在 Facebook 中使用 try Catch 或其他处理调用 API 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com