2016-04-21 8 views
0

私は定期的にリフレッシュするいくつかの動的データを持つ外部Webサイトを持っています。私はSlackボットを設定して、そのサイトに到達しているかもしれません(たぶん、カールやスクリーンスクレイピングで)、最初の行のデータをチャンネルのメッセージに返します。外部ページからデータを読み込んで投稿するスラックボット?

私はいくつかの統合を閲覧しましたが、私はまだこの法案に適合するものは見つかりませんでした。私はそれにスラックボタンを送信する外部サイトを制御する必要はありません。

ありがとうございます!

+2

これは非常に簡単でなければなりません...あなたがこれまでにあなたのコードを共有するだろうか?または、少なくとも使用するプログラミング言語を教えてください。 (それはそのままですが、この質問はStack Overflowのために余裕がないかもしれません)。 – smarx

答えて

1

カール/掻き取り部分が意図したとおりに機能すると仮定すると、特に問題はありません。ときにユーザーがスラッシュコマンドやボットキーワードのいずれかで、あなたは、あなたのサーバーからスクレイピングを実行することができます。

  • それはスラッシュコマンドだった場合、参照、応答するために30分まで、あなたが持っている(遅延応答を使用ドキュメントhttps://api.slack.com/slash-commands#responding_to_a_command
  • 要求がbotから来た場合は、単にあなたが、あなたも使用したり、フレームワークの詳細を共有している場合

は、それはあなたのコードを共有役立つだろう標準メッセージとしてチャンネル内のテキストを投稿

-1

あなたがあなたのボットをGoに書き込めば、私のスラックボットフレームワークを使用することを歓迎する以上のことです。https://github.com/shomali11/slacker

あなたは簡単に言及に応答し、返信するボットを作成できます。例えば

readData方法として

package main 

import (
    "github.com/shomali11/slacker" 
    "log" 
) 

func main() { 
    bot := slacker.NewClient("<YOUR SLACK BOT TOKEN>") 

    bot.Command("ping", "Ping!", func(request *slacker.Request, response *slacker.Response) { 
     response.Reply("pong") 
    }) 

    bot.Command("read <url>", "Read content of a URL", func(request *slacker.Request, response *slacker.Response) { 
     urlContent := readData(request.Param("url")) 
     response.Reply(urlContent) 
    }) 

    err := bot.Listen() 
    if err != nil { 
     log.Fatal(err) 
    } 
} 

、外部のページからデータを読み込むことはGoで比較的簡単でなければなりません。ここでgorequestを使用した例です。

request := gorequest.New() 
response, body, errs := request.Get("http://example.com/").End() 
関連する問題