如何使用httr通过GitHub OAuth实现Advent of Code 2021程序化登录
你之前自行搭建OAuth App实现GitHub认证的流程,是作为OAuth应用开发者的标准验证逻辑。但Advent of Code本身是调用GitHub OAuth接口实现第三方登录的服务提供方,你作为普通用户无法获取AOC在GitHub登记的client_secret,也无法修改它的回调地址配置,所以这套思路不适用于当前场景。
解决方案
最简单的实现方式是直接复用浏览器登录后的会话Cookie,步骤如下:
- 第一步:在浏览器中正常登录Advent of Code 2021站点,按F12打开开发者工具,依次进入「存储」/「应用」-「Cookie」-
https://adventofcode.com,找到名为session的Cookie,复制其对应值。 - 第二步:在R代码中直接携带该Cookie发起请求即可,无需走完整的OAuth认证流程。
示例代码
library(httr) # 替换为你从浏览器中复制的session值 aoc_session <- "替换为你的session字符串" # 拉取2021年第1天的个人专属输入 resp <- GET( "https://adventofcode.com/2021/day/1/input", set_cookies(session = aoc_session) ) # 输出返回的输入内容 cat(content(resp, "text"))
注意事项
- 该
sessionCookie有效期通常为几个月,只要不主动登出AOC账号,很长时间内都可以复用。 - 请勿将你的
session值泄露给他人,他人获取后可直接登录你的AOC账号访问你的专属数据。
内容的提问来源于stack exchange,提问作者thothal
相关产品推荐
相关产品推荐

