coderLMN

Results 85 comments of coderLMN

前面的错误信息里面,我们都遗漏了一句话: > httpuv not installed, defaulting to out-of-band authentication 这是一条重要信息。在安装了 httpuv 包之后,缺省浏览器自动打开并完成了身份验证。 ```R install.packages("httpuv") library(httpuv) facebook_token Waiting for authentication in browser... > Press Esc/Ctrl + C to abort > Authentication...

我这里是正常的。你是不是没有在 Facebook app 里设置网站的 url ?看这个 Timeout 的报错怀疑和它有关。 你可以看一下我这个[评论](https://github.com/coderLMN/AutomatedDataCollectionWithR/issues/4#issuecomment-220064670) 里的步骤和那两个截图。

另外,后面那条提示: > fb_sig Deprecated: supply token object to config directly 是说 sign_oauth2.0() 这个函数已经废弃了,可以直接把 token 对象赋值给 config 。

那应该是你用来翻墙的 proxy 造成的问题。在调用 httr 包里的函数之前,需要先设置好 proxy 参数: ```R library(httr) set_config(use_proxy(url = "*****_", port = "_")) ``` 这样应该就可以了。

端口号外面不要带引号,不然成字符串而不是数值了。 ```R set_config(use_proxy(url = "127.0.0.1", port = 55720)) ```

你用的 httr 是 1.2.0 版本吧?我的 1.1.0 没有这个问题。 在网上看了一下,似乎这个报错的原因是 1.2.0 版在这方面不稳定,建议是回退到 1.1.0 版: ```R library(devtools) install_version("httr", version = "1.1.0", repos = "http://cran.us.r-project.org") library(httr) ``` 你可以试试看。

别着急,调代码是需要耐心的。错误信息非常重要,要仔细分析,一般常见的问题都可以在Google上搜报错信息找到解决办法。实在找不到的,还可以去看出错包里相关的源代码。总之,调代码有时候是需要很多时间到。

这两个 URL 的作用是不同的,一个是提交验证,另一个是在通过验证后获取验证码。 我怀疑这个问题还是和你用的 proxy 有关系,因为我直接用 hosts 访问 FB 没有遇到这个问题。你可以试试用这个办法:https://laod.cn/hosts/2016-google-hosts.html ,然后去掉 proxy 以及 `set_config(use_proxy(url = "*****_", port = "_"))` 这行代码,再重新试试。

我对于 FB 接口测试运行的完整代码及各步骤输出如下: ```R > library(httr) > library(httpuv) > Sys.setenv("HTTR_SERVER_PORT" = "1410/") > facebook Sys.setenv(FACEBOOK_CONSUMER_SECRET="262c***********************e8") > fb_app permissions fb_token Waiting for authentication in browser... > Press Esc/Ctrl + C to...

你的 httr 还是 1.2.1 版本,浏览器打开之前还要选择 1: Yes 2: No,这都和我的情况不一样。先把版本都弄成兼容的,再走下一步吧。 Facebook API 有很详细的接口文档,我还没有认真读过,你可以先看一看有哪些你感兴趣的内容:https://developers.facebook.com/docs/apis-and-sdks