Я весь день ломал голову над этим. Я пытаюсь получить доступ к API StockTwits (https://api.stocktwits.com/developers) из сеанса R. Ранее я без проблем обращался к Twitter API (через rtweet
).
Я создал приложение и получил идентификатор клиента и ключ (ниже приведены только примеры).
app_name = "some.name";
consumer_key = "my_client_id";
consumer_secret = "my_client_key";
uri = "http://iimb.ac.in" # this is my institute's homepage. It doesn't allow locahost OR 127.0.0.1
scope = "read,watch_lists,publish_messages,publish_watch_lists,direct_messages,follow_users,follow_stocks";
base_url = "https://api.stocktwits.com/api/2/oauth"; # see https://api.stocktwits.com/developers/docs/api
Процедура заключается в создании приложения и конечной точки oauth2.0. Затем позвоните по номеру oauth2.0_token
.
oa = httr::oauth_app(app_name, key = consumer_key, secret = consumer_secret, redirect_uri = uri);
oe = httr::oauth_endpoint("stocktwits", "authorize", "token", base_url = base_url);
mytoken = httr::oauth2.0_token(oe, oa, user_params = list(resource = base_url), use_oob = F); # use_oob = T doesn't work.
. После запуска вышеизложенного я перехожу в браузер для входа. Я вхожу в систему, и он просит меня подключиться. После этого я возвращаюсь к своему URI плюс код, то есть https://www.iimb.ac.in/?code=295ea3114c3d8680a0ed295d52313d7092dd90ae&state=j9jXzEqri1
Является ли код моим токеном доступа или чем-то еще? Вызов oauth2.0_token()
продолжает ожидать код, поскольку обратный вызов не является localhost. Кажется, я этого не понимал.
Затем я пытаюсь получить доступ к API, используя приведенный выше код в качестве токена доступа, но меня сбрасывает " неверный токен доступа "ошибка. Формат описан в https://api.stocktwits.com/developers/docs/api#search -index-docs
Может кто-нибудь сказать мне, что я пропустил? При необходимости я могу поделиться своими app_name, consumer_key
и consumer_secret
для репликации.