使用带有CURL的终端发布到Twitter

时间:2009-09-11 09:00:34

标签: unix curl twitter terminal

我到目前为止:

:~ curl -u username:password -d status="new_status" http://twitter.com/statuses/update.xml

现在,我如何使用变量对此进行别名,以便我可以轻松地从终端中删除?如何使别名在不同的会话中工作(当我关闭终端别名重置时)。

谢谢!

5 个答案:

答案 0 :(得分:4)

推特不再支持

基本身份验证。请使用OAuth。

答案 1 :(得分:3)

你明显有别名命令:把它粘在你的〜/ .bashrc中,它将在你的bash shell启动时设置。 (.shrc也适用于类似sh的shell。)

如果您将其粘贴在脚本文件中,如前面的答案所示:

(a)添加行

#!/bin/sh

在顶部;

(b)确保它在您的路径上,或者当您想要运行它时,您必须输入脚本的完整路径。

(c)使其可执行,

chmod +x tweet.sh

答案 2 :(得分:1)

如何将其设置为文件并将参数1用作$ 1:

# tweet.sh "post my status, moron!":
curl -u username:password -d status="$1" http://twitter.com/statuses/update.xml

那会有用吗?

答案 3 :(得分:1)

您需要在主目录中创建一个文件,每次打开新终端时都会引用该文件。

根据您使用的shell类型(tcsh查找名为.tcshrc的文件,而bash查找.bashrc),对文件命名方式进行一些研究。

获得该文件后,运行以下命令使其可执行:

chmod +x name_of_file

然后,在该文件中,创建别名(同样,您需要根据所使用的shell类型研究如何执行此操作)。对于tcsh,我的别名如下:

alias tw 'curl -u username:password -d status=\!^ http://twitter.com/statuses/update.xml'

Bash别名使用等号。 bash别名看起来更像是这样:

alias tw='curl -u username:password -d status=\!^ http://twitter.com/statuses/update.xml'

请注意“status =”之后命令的更改。 \!^告诉代码行插入在别名之后传递的第一个参数。

保存文件。

然后,您可以通过在新终端中键入以下内容来对Twitter进行更新:

tw 'my first post to twitter via the terminal, using aliases'

不要忘记使用转义字符\(即\!

来逃避'特殊'字符(如感叹号)

答案 4 :(得分:1)

由于Twitter不再支持基本身份验证,因此您必须使用OAuth来实现目标。

但如果您只是想使用终端发布到Twitter,有很多应用程序可以做到。 请查看Rainbowstreamt

使用rainbowstream,以下行将允许您从控制台发送推文:

$ sudo pip install rainbowstream
$ rainbowstream
[@yourscreenname]t whatever you want