1

私はpython-rtmbotのプラグインを開発しており、次のようにそのプラグインから短いリンクを出力しようとしています: <http://google.com|test>. 私の目標は、これを Slack に表示することです:テスト- 完全な URL を表示せずにクリック可能なリンク。

ただし、私の Slack ボットは生のテキストを表示するだけです<http://google.com|test>。ファイルrtmbot.pyのoutput()という関数を変更しました。

def output(self):
    for plugin in self.bot_plugins:
        limiter = False
        for output in plugin.do_output():
            channel = self.slack_client.server.channels.find(output[0])
            if channel != None and output[1] != None:
                if limiter == True:
                    time.sleep(.1)
                    limiter = False
                message = output[1].encode('ascii','ignore') + "<http://google.com|test>"
                #channel.send_message("{}".format(message))
                self.slack_client.api_call('chat.postMessage', channel=output[0], text=message, as_user=True)
                limiter = True

channel.send_message()を使用する代わりに、slackclientパッケージのSlackClientのインスタンスであるself.slack_client.api_call()を使用するように切り替えました。リンクは正しく表示されるようになりましたが、表示に時間がかかります (出力が遅くなります)。

ショートリンク機能でchannel.send_message()を引き続き使用する方法はありますか? その他のアイデア/提案は大歓迎です。

4

1 に答える 1

1

RTM API は、デフォルトのメッセージ フォーマット モードを使用してフォーマットされた単純なメッセージの投稿のみをサポートします。

より複雑なメッセージを投稿するには、python slackclient lib で行ったように、chat.postMessage Web API メソッドを呼び出すことができます。今のところこれ以上の解決策はないと思います。

于 2016-05-12T17:25:42.823 に答える