Etsy api OAuth2 с использованием httr oauth2.0_token

#r #rest #oauth-2.0 #httr #etsy

#r #остальное #oauth-2.0 #httr #etsy

Вопрос:

Я пытаюсь использовать etsy API, для которого требуется как ключ API, так и аутентификация oauth2. Пример URL-адреса аутентификации, который они предоставляют в документах, выглядит следующим образом:

 https://www.etsy.com/oauth/connect?
  response_type=codeamp;
  redirect_uri=http://localhost:3003/oauth/redirectamp;
  scope=email_ramp;
  client_id=1aa2bb33c44d55eeeeee6fffamp;
  state=superstringamp;
  code_challenge=DSWlW2Abh-cf8CeLL8-g3hQ2WQyYdKyiu83u_s7nRhIamp;
  code_challenge_method=S256
 

Собрав воедино все, что я могу, из руководств для пакета r httr, у меня есть следующий код:

 shopID <- '111111' # not real values
etsy_keystring <- 'foobar' 
etsy_shared_secret <- 'foobarbaz' 

options(httr_oob_default=TRUE)
etsy_endpoint <- oauth_endpoint(authorize = "https://www.etsy.com/oauth/connect",
           access = "https://openapi.etsy.com/v3/public/oauth/token")
etsyApp <- oauth_app("etsyApp", 
                 key = etsy_keystring, 
                 secret = etsy_shared_secret,
                 redirect_uri = "http://localhost:1410")
oauth2.0_token(endpoint = etsy_endpoint, 
           app = etsyApp, 
           scope = 'billing_r', 
           oob_value = "http://localhost:1410")
 

который открывает браузер по следующему URL:

 https://www.etsy.com/oauth/connect?
  client_id=foobaramp;
  scope=billing_ramp;
  redirect_uri=http%3A%2F%2Flocalhost:1410amp;
  response_type=code
 

Для чего etsy выдает страницу с ошибкой. Чего, я думаю, мне не хватает, так это способа генерации токенов PKCE. Возможно ли это с httr? Или я упускаю что-то совершенно очевидное.

Комментарии:

1. Я ничего не знаю о библиотеке httr, но сервер OAuth2 должен выдать вам значимое сообщение об ошибке, если ваш URL-адрес авторизации не заполнен или он недействителен. Получаете ли вы какие-либо подсказки от Etsy о том, почему они отвечают с ошибкой? PKCE требуется для «общедоступных клиентов» (таких как браузерное приложение или мобильное приложение). Если ваше приложение выполняется в безопасной среде и у вас есть client_secret, PKCE обычно не является обязательным. PKCE — это своего рода одноразовый пароль.

2. На странице ошибок Etsy просто указано, что URL-адрес недействителен. Ничего более информативного.

3. Вы нашли решение?

4. К сожалению, пока нет. Я, вероятно, сдамся и вместо этого переключусь на python.

5. Убедитесь, что ваш URL обратного вызова определен точно так же, как в вашей учетной записи Etsy — перейдите к etsy.com/developers , затем нажмите «Редактировать приложение» и нажмите «Изменить URL-адреса обратного вызова».