如何为GroupMe bot的消息命令

时间:2016-11-08 04:21:37

标签: bash macos terminal .bash-profile groupme

我有一个GroupMe机器人,可以使用以下格式向其分配的聊天发送消息:

curl -d '{"text" : "text", "bot_id" : "(REDACTED)"}' https://api.groupme.com/v3/bots/post

所以,每次我想发送消息时,我决定为它创建一个别名,而不是输入这个怪物。

以下是我尝试在.bash_profile中使用的内容:

alias groupmessage=groupmessagefunction
groupmessagefunction() { curl -d '{"text" : $1, "bot_id" : "(REDACTED)"}' https://api.groupme.com/v3/bots/post; }

任何人都可以告诉我正确的格式是什么让这个工作?谢谢!

更新1:

我现在的代码如下:

v="bot_id_string"
alias groupmessage=groupmessagefunction
groupmessagefunction() { curl -d '{"text" : '"$1"', "bot_id" : '"$v"'}' https://api.groupme.com/v3/bots/post; }

我想指出,我想要完成的是输入类似的内容:

groupmessage "hello"

groupmessage hello

然后,它将发出以下命令:

curl -d '{"text" : "hello", "bot_id" : "bot_id_string"}' https://api.groupme.com/v3/bots/post

如果发生任何误解,我希望这有助于澄清这个问题。

1 个答案:

答案 0 :(得分:1)

现在,我希望这将是您的解决方案:

v=bot_id
curl -d '{"text" : "Test", "'$v'" : "(REDACTED)"}' api.groupme.com/v3/bots/post

您必须在' '周围使用$v - > '$v'因为这样可以让bash评估$v内的curl -d ' ... '

回答您的更新1

我认为这是使用eval命令的更好方法:

v="bot_id_string"
alias groupmessage=groupmessagefunction
groupmessagefunction() {
    a="curl -d '{\"text\" : \"$1\", \"bot_id\" :  \"$v\"}' https://api.groupme.com/v3/bots/post"
    echo "$a"    # this echo just for checking
    eval "$a"; }

groupmessage "Hello is it working now ?"