生成 OAuth 令牌 (Twitter)

生成 OAuth 令牌 (Twitter)

我正在编写一个简单的 bash 脚本来从 Twitter 下载流:

curl -H "Authorization: ${TOKEN}" "$URL"

我正在寻找一种生成$TOKEN.我拥有所有必要的输入(CONSUMER_KEY,...),但是我在哪里可以获得oauth_sign从输入数据生成令牌的程序?

TOKEN=$(oauth_sign $CONSUMER_KEY $CONSUMER_SECRET $ACCESS_TOKEN $ACCESS_SECRET GET $URL)

答案1

我刚刚下载了@goldilocks 提供的链接,http://acme.com/software/oauth_sign/,并确认它可以编译。看起来很简单。

编译

$ make
gcc -c -Wall -O liboauthsign.c
liboauthsign.c: In function ‘oauth_sign’:
liboauthsign.c:123:5: warning: implicit declaration of function ‘getpid’
liboauthsign.c:305:5: warning: pointer targets in passing argument 4 of ‘HMAC’ differ in signedness
/usr/include/openssl/hmac.h:99:16: note: expected ‘const unsigned char *’ but argument is of type ‘char *’
rm -f liboauthsign.a
ar rc liboauthsign.a liboauthsign.o
ranlib liboauthsign.a
gcc -Wall -O oauth_sign.c -L. -loauthsign -lcrypto -o oauth_sign

用法

$ ./oauth_sign --help
usage:  oauth_sign [-q] consumer_key consumer_key_secret token token_secret method url [name=value ...]

摘自自述文件

要使用它,您需要提供四个加密 cookie 以及请求的方法和 URL。如果是带有额外参数的 POST 请求,您也必须提供这些参数。 Oauth_sign 将所有这些放在一起并形成签名字符串。签名是使用 RFC 第 3.4.2 节中指定的 HMAC-SHA1 生成的,并作为 RFC 第 3.5.1 节中指定的授权标头值返回。然后可以通过 http_get(1) 和 http_post(1) 中的 -h 标志或curl(1) 中的 -H 标志在 HTTP 请求中使用该标头。

看起来它附带了一个库,公开了可以在您自己的 C 应用程序中使用的函数。

答案2

从 Twitter 用户获取流源使用 bash 命令从 Twitter 打开流。 (来自commandlinefu.com)

命令行fu.com 捕获

第 1 步 - 创建四个 oauth 密钥Twitter 流提要所需的。

Step2 - 创建签名基本字符串Twitter 流提要所需的。

步骤 3 - 创建 oauth 令牌Twitter 流提要所需的。

Step4 - 创建授权标头Twitter 流提要所需的。

相关内容