我正在尝试验证使用Python / pycurl在stocktwits(see API)上发布的机器人。据我了解,首先我需要通过oauth/authorize
请求该应用程序被授权使用Stocktwits用户数据,该数据返回一个授权代码。然后,我需要通过oauth/token
确认许可,该许可将发回可用于发布股票twitter的访问令牌。
我遇到的问题是,我向auth/authorize
发出发布请求后,返回的响应是
Host: api.stocktwits.com
Authorization: Basic bmljay5vc2hpbm92QGdtYWlsLmNvbTp6YWRuaWsxMg==
User-Agent: PycURL/7.43.0.2 libcurl/7.60.0 OpenSSL/1.1.0h zlib/1.2.11 c-
ares/1.14.0 WinIDN libssh2/1.8.0 nghttp2/1.32.0
Accept: */*
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
< HTTP/1.1 100 Continue
,程序将暂停等待。如何处理http 100
响应?
api调用的代码如下
def get_auth_token:
auth_data = ""
c = pycurl.Curl()
c.setopt(c.CAINFO, self.CA_CERTS)
c.setopt(pycurl.POST, 1)
c.setopt(c.URL, uri_to_ouath_authorize_call)
c.setopt(c.FOLLOWLOCATION, True)
c.setopt(c.WRITEDATA, auth_data)
c.setopt(c.USERPWD, 'bot_account_username:password')
答案 0 :(得分:1)
我猜测您需要使用POSTFIELDS
或READFUNCTION
来提供发布数据,看起来您没有为请求正文配置任何内容。参见https://curl.haxx.se/libcurl/c/CURLOPT_POST.html。
使用pycurl.POST
是一个常见错误,通常应改用POSTFIELDS
。