Доступ к Reddit API с помощью OAuth2 в R: как запросить и обновить токен - PullRequest
2 голосов
/ 18 января 2020

Решено

Я использую следующий код R для получения токена из Reddit API от имени пользователя. Однако токены истекают через час. Я понимаю, что для доступа к этому приложению мне нужно использовать параметр refresh_token, который я получу при первом запросе. Однако по какой-то причине я не могу получить refresh_token, используя следующий код:

#API app settings reddit:
endpoint <- oauth_endpoint(
authorize = "https://www.reddit.com/api/v1/authorize",
access =    "https://www.reddit.com/api/v1/access_token"
)

appName <- "xxx"
key <- "xxx"
secret <- "xxx"

app <- oauth_app(appName, key, secret)

# authenticate using OAuth2 [an issue with token]
token <- oauth2.0_token(
endpoint = endpoint,
app=app,
scope = c("read"),
user_params = list(duration = "permanent"),
use_basic_auth = TRUE,
config_init = user_agent("Testing"),
cache = TRUE
)

Вот так выглядит полученный токен:

print(token$credentials)
$access_token
[1] "xxx"

$token_type
[1] "bearer"

$expires_in
[1] 3600

$scope
[1] "read"

Кто-нибудь может предложить, как его улучшить? запрос

1 Ответ

0 голосов
/ 19 января 2020

Запрос должен включать в себя атрибут duration = "перманентный" в поле query_authorize_extra

Вот исправленный запрос:

token <- oauth2.0_token(
endpoint = endpoint,
app=app,
scope = c("read"),
query_authorize_extra = list(duration = "permanent"),
use_basic_auth = TRUE,
config_init = user_agent("Testing"),
cache = TRUE
)

Через один час токен автоматически обновляется один раз или получить другой тип отправленного запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...