使用cURL和Twitter API给我一个错误

时间:2013-09-16 19:47:30

标签: curl twitter

我设置了一个Twitter开发帐户,并且已经创建了一个小应用程序。今天我尝试使用带有Twitters oAuth签名结果页面的cURL(它为你生成cURL命令)。

我正在尝试运行以下GET> https://api.twitter.com/1.1/statuses/home_timeline.json

当我将其粘贴到Twitter以将其转换为cURL命令时,我得到>

curl --get'https://api.twitter.com/1.1/statuses/home_timeline.json' - 标题'授权:OAuth oauth_consumer_key =“CONSUMER_KEY”,oauth_nonce =“OAUTH_NONCE_KEY”,oauth_signature =“OAUTH_SIG_KEY”,oauth_signature_method =“HMAC-SHA1”, oauth_timestamp =“1379360432”,oauth_token =“OAUTH_TOKEN”,oauth_version =“1.0”' - verbose

当我尝试使用命令在Windows 7上运行cURL时,我收到以下错误>

在libcurl中不支持或禁用

*协议'https *关闭连接-1 curl:(1)libcurl中不支持或禁用协议'https *重建网址:OAuth / *添加句柄:conn:0x1dbd530 *添加句柄:发送:0 *添加句柄:recv:0 * Curl_addHandleToPipeline:长度:1 * - Conn 0(0x1dbd530)send_pipe:1,recv_pipe:0

后面出现更多错误..我做错了什么?

我可以成功运行以下>卷曲https://twitter.com/

我看到上述命令的结果。为什么twitter不会工作?我正确地运行它吗?

编辑当我删除引号并运行如下>

curl --get https://api.twitter.com/1.1/statuses/home_timeline.json - 主管授权:OAuth oauth_consumer_key =“KEY1”,oauth_nonce =“KEY2”,oauth_signature =“KEY3”,oauth_signature_method =“HMAC-SHA1”,oauth_timestamp =“ 1379364692“,oauth_token =”KEY4“,oauth_version =”1.0“--verbose

我进一步..但我得到一个不同的错误>

SSL certificate verify ok.
GET /1.1/statuses/home_timeline.json HTTP/1.1
User-Agent: curl/7.32.0
Host: api.twitter.com
Accept: */*

HTTP/1.1 400 Bad Request
content-length: 61
content-type: application/json; charset=utf-8
date: Mon, 16 Sep 2013 20:54:55 UTC
Server tfe is not blacklisted
server: tfe
set-cookie: guest_id=v1%3A137936489538017864; Domain=.twitter.com; Path=/; Exp
ires=Wed, 16-Sep-2015 20:54:55 UTC
strict-transport-security: max-age=631138519

{"errors":[{"message":"Bad Authentication data","code":215}]}* Connection #0 to
host api.twitter.com left intact
Rebuilt URL to: OAuth/

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我找到了自己问题的答案。当您在Twitter开发站点上使用oAuth工具时,您可以获得一个cURL命令来测试API函数。

oAuth twitter工具生成的代码可以在Linux中运行,但是如果您正在运行Windows机器,则需要转换所有' (撇号)到" (引号)。我用通用的" KEY"替换了我的安全令牌/密钥。变量如下所示。

ex)//在Windows中运行

curl --get "https://userstream.twitter.com/1.1/user.json" --header 
"Authorization: OAuth oauth_consumer_key="KEY", oauth_nonce="KEY",
oauth_signature="KEY", oauth_signature_method="HMAC-SHA1", 
oauth_timestamp="1379378318", oauth_token="KEY", oauth_version="1.0"" 
--verbose