2016-02-16 2 views
0

Может ли кто-нибудь помочь мне получить доступ к API Lufthansa? Я взял хорошую отправную точку и изменил исходную строку кода на моей строке с проверками на каждом шаге.Новый API Lufthansa - не удается получить токен

шаги 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, я думаю).

Любые идеи?

Стив

ответ

0

Не разрешать и доступ должен быть URL-ы? из файла oauth_endpoint справки:

Авторизоваться
URL для отправки клиента для авторизации

доступа
URL используется для обмена неаутентифицированными для аутентичных маркеров.

+0

Спасибо за ваш комментарий Шарон! Я не совсем уверен, что мне нужно изменить! [developer.lufthansa.com/docs/read/api_basics/Getting_Started] (developer.lufthansa.com) дает api.lufthansa.com/v1/oauth/token как url ​​для получения токена. – SteveG

Смежные вопросы