#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-адреса обратного вызова».