r语言 - 新的汉莎航空 API - 无法获取令牌



有人可以指导我如何访问汉莎航空API? 我有一个很好的起点,并在每一步都进行了检查,并修改了原始代码行。

步骤 1 和 2 似乎有效

library(httr)
library(httpuv)
#Original code taken from 
#https://github.com/hadley/httr/blob/master/demo/oauth2-github.r
# 1. Set OAuth settings for dlh:
# http://www.rdocumentation.org/packages/httr/functions/oauth2.0_token.html
dlh = oauth_endpoint(
        base_url = "https://api.lufthansa.com/v1/oauth",
        request = NULL,
        authorize = "authorize",
        access = "token"
)
# 2. Register an application 
#    Replace key and secret below.
# http://www.rdocumentation.org/packages/httr/functions/oauth_app
myapp <- oauth_app("SampleCabin",
                   key = "****",
                   secret = "****")

但后来我遇到了问题

options(httr_oauth_cache=TRUE, httr_oob_default=TRUE)
# 3. Get OAuth credentials
# http://www.rdocumentation.org/packages/httr/functions/oauth2.0_token
#Sample 
#oauth2.0_token(endpoint, app, scope = NULL, user_params = NULL,
               #type = NULL, use_oob = getOption("httr_oob_default"),           as_header = TRUE, use_basic_auth = FALSE, cache = getOption("httr_oauth_cache"))
dlh_token <- oauth2.0_token(dlh, myapp, 
                            scope =          "https://api.lufthansa.com/v1/oauth/token",
                            use_oob = getOption("httr_oob_default"), 
                            use_basic_auth = FALSE#,
                            )

我收到以下消息。

#Please point your browser to the following url: 
#https://api.lufthansa.com/v1/oauth/authorize?client_id=****&scope=https%3A%2F%2Fapi.lufthansa.com%2Fv1%2Foauth%2Ftoken&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code
#Enter authorization code: 

现在我认为上面的代码行是获取令牌。 相反,此时我必须手动粘贴从范围 URL 获取的令牌。 我在这里做错了什么?

这后面跟一条错误消息。

#Error in init_oauth2.0(self$endpoint, self$app, scope = self$params$scope,        Bad Request (HTTP 400).

我计划通过以下内容来遵循这一点...

# 4. Use API
req <-  GET("https://api.lufthansa.com/v1/operations/flightstatus/route/TLS/FRA/2016-02-15",config(token = dlh_token))
stop_for_status(req)
content(req)

这是我第一次尝试访问除以下练习之外的 API。 只是为了让事情更有趣,我认为我需要在此过程中的某个地方添加一个代理地址(我认为是第 4 步(。

任何想法??

史蒂夫

授权和访问不一定是 URL? 从oauth_endpoint帮助文件:

授权
要将客户端发送到以进行授权的网址

访问
用于将未经身份验证的 URL 交换为经过身份验证的令牌。

相关内容

  • 没有找到相关文章

最新更新