我整天都在为此头疼。我正在尝试从 R 会话访问 StockTwits API ( https://api.stocktwits.com/developers )。我之前已经轻松访问了 twitter API(通过rtweet
)。
我创建了一个应用程序并获得了客户端 ID 和密钥(以下只是示例)。
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()
调用一直在等待代码。我似乎没有掌握这一点。
然后我尝试使用上面的代码作为访问令牌访问 API,但我被抛出“无效访问令牌”错误。格式在https://api.stocktwits.com/developers/docs/api#search-index-docs中描述
有人可以告诉我我错过了什么吗?如果需要,我可以分享我的app_name, consumer_key
和consumer_secret
复制。