我使用R
包httr
在oauth端点(strava(使用oauth_endpoint()
、oauth_app()
和oauth2.0_token()
对自己进行身份验证(步骤1(。
# Step 1: Genrate oauth token
strava_endpoint <- oauth_endpoint(
request = NULL,
authorize = "authorize",
access = "token",
base_url = "https://www.strava.com/api/v3/oauth/"
)
myapp <- oauth_app(
"strava",
key = 0000000, # <- my key
secret = "mysecret" # <- my secret
)
mytok <- oauth2.0_token(
endpoint = strava_endpoint,
app = myapp,
scope = c("activity:read_all"),
cache = TRUE
)
最后一个函数要求我通过浏览器进行身份验证,并允许请求的作用域,然后将其缓存为令牌.httr-oauth
。这样做一次之后,我可以通过strava API(步骤2(将这个令牌文件与readRDS()
一起使用GET()
# Step 2: Use the file ".httr-oauth" got use the API (GET)
mytok <- readRDS(".httr-oauth")[[1]]
GET("https://www.strava.com/api/v3/athlete", config(token = mytok))
Response [https://www.strava.com/api/v3/athlete]
Date: 2022-03-09 07:53
Status: 200
Content-Type: application/json; charset=utf-8
Size: 650 B
这在本地运行良好。但是,我想代表我将此令牌传递给GET()
的github操作。换句话说,我想在本地执行步骤1,并在Github Action(步骤2(中使用生成的令牌(文件.httr-oauth
(
但是,由于这个令牌是一个秘密,应该添加到.gitignore
中,所以我不知道如何验证github操作。
我想我可以添加.httr-oauth
作为github机密,但它似乎是一个加密文件。
是否有其他方法可以通过API(例如strava(授权github操作GET()
我的数据?
,但它似乎是一个加密文件。
;在工作流程中使用加密的秘密";显示您应该能够检索该秘密的值:
steps:
- name: Hello world action
with: # Set the secret as an input
super_secret: ${{ secrets.SuperSecret }}
env: # Or as an environment variable
super_secret: ${{ secrets.SuperSecret }}
然后它就是一个变量(或环境变量(,其值(未加密(可以在工作流的其余部分中使用。