Использование токенов oauth2.0 с пакетом R httr

Проблема

Пакет httr предоставляет оболочки CURL в R (см. документацию по пакету). .

Я новичок в HTTP и API. Моя проблема заключается в том, чтобы заставить работать аутентификацию oauth2.0. Я пробовал различный синтаксис и получаю либо ошибки, либо статус 401.

Как правильно использовать токен oauth2.0 и сделать запрос GET(), используя httr?

Попытки кода

# Set UP
  
  url = "https://canvas.{institution}.edu/api/v1/courses"
  key = "{secret_key}"

# 1
  GET(url, sign_oauth2.0(key)) 
  # Error: Deprecated: supply token object to config directly

# 2
  GET(url, config(sign_oauth2.0 = key)) 
  # unknown option: sign_oauth2.0

# 3
  GET(url, config = list(sign_oauth2.0 = key)) 
  # Status 401

person Danielle    schedule 06.07.2017    source источник


Ответы (1)


Решение

В данном конкретном случае — при работе с Canvas API — требуется дополнительная информация. в заголовке запроса.

Используя функцию GET из пакета httr R, используйте параметр add_header для предоставления аргумента, включая ваш ключ oauth2.

Используйте вариант 1, если вы не хотите жестко кодировать свой ключ в запросе (рекомендуется). Или используйте вариант 2 и вставьте ключ в виде строки. Но в обоих случаях носитель предшествует ключу.

# Set Up
url = "https://canvas.{institution}.edu/api/v1/courses"
key = "{secret_key}"

# OPTION 1
GET(url, add_headers(Authorization = paste("Bearer", key, sep = " ")))

# OPTION 2
courses.request = GET(url, add_headers(Authorization = "Bearer {secret_key}"))

#Дальнейшие пояснения

Может ли кто-нибудь еще объяснить другие причины, по которым примеры ОП не работали?

person Danielle    schedule 27.07.2017
comment
Примечание: вам не нужно sep = " " в варианте 1. - person Ott Toomet; 21.09.2018