<em id="51kis"></em>

      <dl id="51kis"></dl>
      <sup id="51kis"></sup>
        <sup id="51kis"></sup>

        <dl id="51kis"><ins id="51kis"></ins></dl>

        <dl id="51kis"><menu id="51kis"><small id="51kis"></small></menu></dl>

            <div id="51kis"></div>

            <sup id="51kis"></sup>

                  <em id="51kis"></em>

                  <dl id="51kis"></dl>

                    <em id="51kis"></em>
                    <em id="51kis"></em>

                    <div id="51kis"></div>
                    <dl id="51kis"></dl>

                    <div id="51kis"><tr id="51kis"><object id="51kis"></object></tr></div><sup id="51kis"></sup><em id="51kis"></em>
                      <sup id="51kis"><menu id="51kis"></menu></sup>
                        <div id="51kis"></div>

                        Thoughts, stories and ideas.

                        新手指南,在倍洽團隊中添加機器人或自定義機器人

                        「機器人」一直是倍洽主打的特色功能之一,在倍洽中,機器人承擔著信息自動化的任務,幫助使用者實現各種外部工具消息的打入或打出,實現人與人,人與工具,工具與工具之間信息的打通。

                        如果用更直接一些的表述,則可以將倍洽中所說的機器人理解為一段段封裝好的程序代碼,這些程序在后臺默默運作,將指定的動作實現為一條條內容消息,并在倍洽聊天窗口中按照規定的樣式表述出來。

                        標準化機器人

                        在倍洽團隊管理面板中,進入「添加機器人」界面,我們可以看到多個分類下各式各樣的及機器人插件,如 GitHub 機器人、百科機器人、Trello 機器人等等,除三個自定義機器人外,所有機器人插件都可以理解為標準化機器人插件——即由倍洽團隊完成了后臺程序邏輯的實現,使用者只需要在前臺配置時,按照各自的需求,直接選用(有部分機器人支持多種功能選擇)即可。

                        例如,Email 機器人就屬于可以快速選用的機器人。添加 Email 機器人后,將自動生成的機器人郵箱地址添加到對應郵箱的轉發地址中,即可使用這個 Email 機器人,在倍洽中查收發給相應郵箱的郵件了。

                        Trello 等機器人,則屬于支持多種功能選擇的情況。添加 Trello 機器人后,可以自行勾選該 Trello 中的哪些事件需要推送到相應討論組。未被勾選的事件,則不會作為消息在倍洽討論組中進行提醒。

                        上述兩種機器人的差別,僅在于是否支持進一步篩選提醒事件,本質上都是由倍洽團隊提供的標準化插件,能夠大致覆蓋常見的使用需求。如果在使用倍洽機器人的過程中,發現仍有未被滿足的個性化需求,則可以考慮嘗試自定義機器人的使用。

                        自定義機器人

                        目前,倍洽提供以下三種自定義機器人:

                        1.Incoming

                        可以將 Incoming 機器人簡單的理解為一個單向的機器人,它最主要的工作,是按照程序設定的條件,將外部工具中產生的新消息,同步到倍洽指定討論組中。

                        如:定時將當前 AQI 空氣指數同步到倍洽等。

                        2.Outgoing

                        Outgoing 則可以有來有往。通過設置觸發關鍵詞,Outgoing 機器人可以幫助使用者將消息發送到指定外部服務,還可以將外部服務的響應結果返回到觸發當前動作的討論組。

                        例如,可以通過 Outgoing 機器人調用百科服務,在倍洽討論組中發起對某個詞語的查詢,由 Outgoing 機器人將百科返回的結果發布到討論組中等。

                        值得一提的是,Outgoing 機器人無需指定討論組,只要使用正確的觸發詞,就可以在倍洽團隊的任意聊天窗口中調用相應的 Outgoing 機器人。

                        3.Hubot

                        Hubot 機器人的功能則更為豐富一些。Hubot 是 GitHub 開源的一款機器人框架,提供很多聊天機器人所需的基礎設施,并且,Hubot 已經發展出了較好的生態圈,有很多開源插件可以借用。選用 Hubot 機器人,也可以實現 Incoming 或 Outgoing 機器人的功能。

                        以上三種自定義機器人并無實際上的功能高下之分,在具體的需求場景下,建議大家根據實際情況,靈活的進行選擇。

                        配置自定義機器人

                        通常來說,配置一個自定義機器人可以籠統的歸納為以下兩步:

                        1.選擇一個合適的自定義機器人框架并完成添加

                        在前文中,我們已經簡單介紹了目前倍洽所提供的三種機器人框架。在實際的需求場景下,大家可以根據需求的復雜程度,開發量的大小等,評估選擇最為適合的機器人。

                        僅僅就「添加」而言,這個操作十分簡單,在「添加機器人」界面中選中,并點擊「添加」即可。但此時,向團隊中添加一個自定義機器人的「萬里長征」其實只完成了第一步。

                        無論添加的是 Incoming、Outgoing 還是 Hubot 機器人,「添加」之后,「保存配置」之前(如配置教程太長,可點擊「收起」),我們都能在「配置信息」一欄中看到兩個重要內容(對單向機器人 Incoming 而言,則只有一個):

                        1.1 Hubot Token/Token/Webhook

                        這串內容是這個機器人的唯一身份標識,用以判定打入或打出的內容是否應由該機器人承載。可以先把這串內容復制下來,在下一步程序的撰寫和部署中將會使用到它。

                        1.2 Hubot URL/Post 地址

                        此處應填寫由該機器人執行的程序部署生效后指定的接口地址,機器人會與這個地址通信,執行對應的任務。

                        不過如選用的是 Hubot 機器人,則可能會遇到一個特殊情況:Hubot 分為 rtm 模式和 http 模式,如果 hubot 運?在 http 模式下,給 hubot 發送的消息會以 POST 的形式發送到該 URL 下,而如果運?在 rtm 模式下的話,就不需要填寫這個信息了。

                        例如,在選用 http 模式 Huobt 機器人的前提下,倍洽的運營團隊撰寫了一段根據關鍵詞自動爬取某網站相關內容的程序,并將這段程序代碼部署到了自有的云服務器上,與此同時,在這段程序中已規定接口的地址為 xx.xx.xxx.xx,將這個訪問地址填入某個 Hubot 機器人的 Hubot URL 處后,這個 Hubot 機器人將自動執行按關鍵詞爬取某網站內容的任務。

                        2.撰寫符合需求的程序并完成部署

                        程序代碼的撰寫通常也可分為兩種情形:

                        2.1 該程序已由他人實現,并開源在 GitHub 等網站上

                        這種情況實際上省去了自行撰寫程序代碼的工作。只需將相應代碼復制下來,并將其中的 Hubot Token/Token/Webhook 信息修改為實際的信息即可(如還有其他需要修改的自定義參數,也可以按照需求一并進行修改)。

                        2.2 自行撰寫程序代碼

                        如需完全自行實現某些功能,則需要一定的編程技能。并且,希望通過這個機器人連接的工具提供開發接口,是該機器人實現的必要條件。

                        在機器人配置頁面的「配置教程」一欄中,已提供了對應機器人程序的撰寫案例,并對格式和字段等都進行了詳細的說明,按照教程進行撰寫即可。

                        實現什么功能、如何實現功能,則是「自定義」最好的注腳 :)

                        無論選用哪一種程序撰寫方式,在程序代碼完成后,都需要進行部署才能投入實際使用。如已有常用的部署方式,則一切照舊即可。也可以考慮嘗試 webscriptheroku 等輕量部署工具,將編寫好的程序放置到云服務中。

                        這一步完成后,將會得到一個實際可用的訪問地址,將其填入上文所說的「Hubot URL/Post 地址」框中,并保存該機器人配置,就可以回到倍洽團隊交流頁面,測試該機器人的使用了。

                        hubot 機器人,帶給你更智能的 ChatOps 體驗

                        Hubot 的前世今生

                        早在 2016 年,我們發布了對 hubot 的支持,隨后,很多團隊利用 hubot 做了很多好玩兒的應用,在此分享給大家。

                        Grafana 機器人

                        老司機的老黃歷

                        但在使用原有接口開發的過程中,我們也發現存在一些問題:

                        • 原有接口只能被動接收 BearyChat 發過來的消息
                        • hubot 只能收到有限的消息類型事件,不能很好地處理其他事件
                        • 需要用戶在部署 hubot 服務的基礎上打開 HTTP 端口給 BearyChat 服務器進行請求
                        Level UP!

                        在之后的升級中,我們提供了以下幾個功能支持:

                        • 消息實時長連接

                        為了能保證 hubot 實時收到 BearyChat 的事件推送,我們提供了實時長連接(RTM)模式。該模式下,hubot 將會通過 WebSocket 協議連接上 BearyChat 聊天服務器。成功連接上后,團隊內所有事件都會通過該連接發送到 hubot. 在該模式下,用戶不再需要提供 HTTP 端口(也就是說在防火墻后面也能收發消息)就能正常啟用 hubot 機器人。

                        • 團隊事件推送

                        新模式下,除了原有的消息事件,BearyChat 服務也會同時推送其他事件到 WebSocket 連接到另一方,例如:

                        • 新增公開討論組創建事件
                        • 新增消息回應事件
                        • ...

                        現在 hubot 也可以對這些事件作出響應,玩出更多花樣來:

                        今天吃啥啊?

                        今天你買房了嗎?

                        今天你斗圖了嗎?

                        總結

                        我們針對 hubot 添加了實時長連接支持,并且提供了更多的事件推送支持;這些改動將會更加方便用戶把 hubot 整合到 BearyChat 的日常使用中,提高團隊工作效率。

                        要使用新的模式,原有的 hubot 機器人只需要根據 hubot-bearychat 的升級文檔進行升級即可。如果有其他問題和想法,也歡迎隨時跟我們聯系。

                        在之后,我們會推出更多的精彩案例,敬請期待。

                        如何在一分鐘內配置一個二維碼機器人

                        我們團隊在使用自己產品的時候,經常會有冒出一些很多小想法,比如:

                        在抽獎的時候能不能有個機器人幫助我們擲色子?

                        在選擇困難的時候有一個機器人幫我決定中午吃啥?

                        我想把電腦上的一個頁面用手機打開,能不能有個機器人幫我生成二維碼?

                        相信你曾有過的小想法也會有很多,這些想法靠不靠譜先不要緊,先看看能不能快速實現出來~

                        這篇博客我介紹一個「如何建立一個二維碼機器人」的完整示例,完成之后,在 BearyChat 發一個 $qr 某網址 的消息,你就可以獲得一個對應的二維碼圖片。

                        我們需要利用到兩個東西: Outgoing 機器人和 Webscript 腳本服務。

                        所謂 Outgoging 機器人 就是在 BearyChat 里,把所有以某觸發詞的開頭的普通消息,發送到外部的某個指定服務的機器人。它更厲害的地方在于:可以把處理后的結果再轉化成消息,發回給 BearyChat ,讓你的機器人可以「一問一答」。

                        先去你團隊所在 BearyChat 管理面板添加一個 Outgoing 機器人。

                        在手動模式這里我們我們填入了「觸發詞」 $qr ,由于 「POST 地址」暫時還沒有,我們先不關閉這個頁面,留著一會兒填寫。

                        再介紹一個叫 Webscript 的服務,它的作用就是能在線編輯并且部署你的小腳本到一個 URL,快速完成一個簡單的 API。

                        你需要先注冊一下帳號,然后就可以創建自己的腳本了, 創建的時候你需要填寫訪問腳本對應的 URL。

                        在 Webscript 上編寫腳本使用的是 Lua,雖然你可能并不熟悉 Lua 這門語言,但其實這里的使用是極為簡單的。Webscript 自己也提供了不錯的 技術文檔 讓你快速上手。

                        在這個腳本只做了很少的事情:

                        第一句我們通過 json.parse(request.body).text 得到了 BearyChat 發來消息的正文。 第二句 string.sub(text, string.find(text,"%s.+$")) 通過正則表達式 ,獲取了觸發詞之后的內容,也就是我們生成二維碼的地址。 最后我們通過 "

                        最后我們再回到 BearyChat 的管理面板,把剛創建腳本的 URL 填入到 Outgoing 機器人的 「POST 地址」,保存。

                        這樣我們的二維碼機器人就完成了,可以在任何地方使用 $qr 某網址 來觸發它:當然如果你是第一次走這個流程,會多需要一些時間,但之后再次做類似的機器人一定就熟能生巧,以 1 分鐘以內為目標吧~

                        還有一個小插曲,當時設計同學看到了我使用這個機器人,告訴我說這可幫了他大忙:平時他要提供設計素材的時候,都是先去搜索引擎,找一個在線二維碼生成工具,下載圖片,最后回到 BearyChat 把圖傳給工程師。這個過程很費時間不說,偶爾還會弄錯,現在有了這個二維碼機器人,不止方便,地址也寫在上邊,大家可以即及時發現錯誤。聽到這個成就感爆棚啊。

                        希望這篇攻略可以幫助到你,快去按照我們的步驟寫一個二維碼機器人吧~~

                        什么?RSS 機器人還能做這些事情?

                        雖然在短短幾十年的互聯網時代里 RSS 已經是一個相對古老的技術,但是它至今也仍在然起著很多不可替代的作用。利用RSS 我們可以避免耗費精力的主動查詢,讓網絡世界更加自動化,而且相對于微信公眾號等封閉的內容訂閱平臺,RSS 是完全開放的,生態圈更加豐富和多樣。

                        倍洽(BearyChat)支持 RSS 機器人已經有三年了,使用它可以很方便的把一些好的內容來源,自動給自己或者給團隊同事分享閱讀。

                        然而利用 RSS 機器人,是不是只能獲取有 RSS 支持的內容呢?其實答案是否定的,因為還有很多工具可以幫助你把想要的內容 RSS 化,讓機器人可以識別,我們來看看下面幾個場景:

                        我想跟蹤社交媒體,看看對于自己的產品,用戶們是怎么說的?

                        有一個叫 Queryfeed 的工具,可以支持把多種社交網站(Twitter Facebook Google+ Instagram 等)的內容轉化為 RSS 源。

                        我們以 Twitter 舉例,用它來生成關于游戲「紀念碑谷」的 RSS 源。

                        1.先用 Queryfeed,填入「紀念碑谷」生成 Twitter search 的 RSS 源。

                        1. 把生成的 RSS 源,地址復制出來。

                        2. 建立一個 RSS 機器人,在「訂閱地址」里填入剛剛復制的 RSS 源地址。

                        3. 設置完成,你立即會收到用戶最近和 「紀念碑谷」有關的 Tweet。

                        怎么樣是不是很容易?只需簡單幾步,就不會輕易錯過用戶的聲音了,我們再看下一個應用場景。

                        • 我的軟件使用了一些關鍵的第三方庫,我想及時知道他的更新要怎么辦?

                        Libraries.io 是一個開源軟件的索引服務,支持眾多主流開源軟件倉庫。

                        我們這里要監控一下 hubot-bearychat (BearyChat 的 Hubot adapter)這個包在 NPM 上有沒有新更新。

                        1. 在 Libraries.io 里搜索 「hubot-bearychat」

                        2. 進入詳情頁,在側欄就可以看到 releases 的 RSS 源,如下圖:

                        1. 同樣復制地址,建立機器人。

                        2. 設置完成,你立即會收到最新的版本號推送。

                        通過這個機器人,我們就可以及時知道,我們使用的庫是不是又修復了什么 BUG,有沒有新功能可以用上。(GitHub Repo 也支持 releases 的 RSS 輸出,也是另一種跟蹤方式)

                        當然,上面的兩個例子都是一個特定場景,社交網站和開源軟件,那么......

                        • 如果我想對任意的頁面進行監控呢?

                        現實是沒有那么美好,大部分的互聯網頁面是都不支持 RSS 輸出的,但是這也不是沒有辦法,再介紹兩個終極武器:將任意頁面轉為 RSS 源的工具 Feedity 和 Feed43。

                        我們以抓知乎的搜索結果為例子,把知乎「搜索 AlphaGo」的地址 https://www.zhihu.com/search?type=content&q=AlphaGo 復制到其中一個工具里。

                        其中 Feedity 支持你鼠標圈選你關心的內容,并可以把同一類內容(比如標題)一起選擇抓取,從任意頁面選擇你所需要關心的內容,不過 Feedity 是收費服務,最基礎的套餐是 9 美元一個月,如下圖:

                        而 Feed43 使用起來難度比較大,需要你有一些 HTML 基礎,自己去寫規則來匹配出你想要的內容,把需要的內容通過一些語法篩選出來,但是優勢是有免費的套餐。

                        這兩個工具,都可以先試用,測試生成你想要的 RSS 源。這樣絕大部分頁面都可以通過各種各樣的工具 RSS 化了。

                        好了,介紹的這些工具不知道對你有沒有啟發,如果有就動起手來,讓 RSS 機器人發揮它最大的價值吧~

                        如何玩轉倍洽BearyChat

                        最近,我們重新把《玩轉BearyChat》整理了一下,力求在注冊倍洽的第一時間給大家一些引導,幫助大家更清晰的梳理倍洽使用框架和使用技巧,希望大家可以快速熟悉倍洽并在倍洽搭建與團隊文化相契合的智能化工作流。

                        為了真正把倍洽用起來,創建者在建立團隊以后還需要做 3 件事:

                        一、邀請其他團隊成員,好不好用要大家一起試試才知道

                        二、建立更多討論組,讓討論變的井井有條,避免干擾

                        三、添加機器人,讓外部通知及時有效,還能自己 DIY 定制化的功能

                        接下來,讓我們看圖說話~

                        一、邀請成員

                        1、團隊剛剛建立還空空如也,聯系人里只有倍洽小助手,它是每一位倍洽注冊用戶專屬的小助手,你可以通過它我們會通過小助手及時的向你發送一些消息,但是我們無法接收到你的消息,所以暫時先不要調戲小助手哦。

                        2、通過手機號和郵箱邀請團隊成員都非常的方便,也可以使用一周內有效的邀請鏈接,很快就可以把整個團隊召集起來(團隊創建者可以在權限設置中,選擇開放/關閉所有成員均可邀請其他人的設置).

                        3、小伙伴們都到齊了,帶大家去聊聊今天的工作內容吧,順便看看發一條消息,會觸發多少功能,在編輯消息后,也可能會發現彩蛋哦。

                        二、創建討論組

                        1、人到齊了,就要做好組織工作。通過討論組,讓大家去不同的地方討論不同的內容,避免上下文混亂的情況。討論組可以輕松的創建和加入,為了臨時小任務建立獨立討論組也毫不麻煩。

                        2、如何劃分討論組頗有技巧,但更重要的是要符合你團隊的情況,下面的圖給出一個簡單的例子。

                        3.有些內容對保密性要求比較高,這時候應該使用只有邀請才能加入的私密討論組,分享文件等內容在這里也會對外保密。

                        有了討論組之后,盡量不要跑題說不相關的內容,如果誰沒有做到就提醒他一下。注意細節其實也是提高工作效率的秘訣。

                        三、添加機器人

                        在倍洽,和機器人一起工作,是一個提升效率的好辦法,它可以幫助你完成一些神奇的任務,點擊團隊名稱右側的下拉菜單,進入「機器人管理」先去看看。

                        1、機器人的種類和功能都是多種多樣,或許你能在這里看見一些熟悉的 Logo ,你可以快速將它門集成進來。

                        2、具體案例:我們添加一個?Trello?機器人,并通過授權模式進行設置,將 BearyChat 工作組的內容發送到“項目進度”討論組 (Trello 本身是一個項目管理工具,最大特色是靈活易用的卡片式管理).

                        這樣設置之后,再有 Trello 里的操作,就會立即把提醒發到“項目進度”討論組,讓大家對項目的動態有實時的了解,而免去反復查收郵件的麻煩。

                        除了 Trello 之外機器人還有很多種類,現在倍洽已經實現了許多項目管理、代碼托管、Bug 追蹤、在線表單等不同類型的機器人.最有意思的是動手能力很強的你還可以自己開發機器人,通過 Incoming/Outgoing 機器人,已經有用戶實現了“擲色子”,“中午吃什么?”,“匯率轉換” 等很多只有想不到沒有做不到的創意。

                        經過這三步,你的團隊已經有了一批靠譜的成員,豐富的討論組,和辛勤的機器人。

                        去體驗一下在倍洽溝通的感覺,專心的進入工作狀態吧。 之后我們還會陸續發布倍洽的一些使用技巧,請繼續關注。

                        3.7.0.0通比牛牛源码
                            <em id="51kis"></em>

                            <dl id="51kis"></dl>
                            <sup id="51kis"></sup>
                              <sup id="51kis"></sup>

                              <dl id="51kis"><ins id="51kis"></ins></dl>

                              <dl id="51kis"><menu id="51kis"><small id="51kis"></small></menu></dl>

                                  <div id="51kis"></div>

                                  <sup id="51kis"></sup>

                                        <em id="51kis"></em>

                                        <dl id="51kis"></dl>

                                          <em id="51kis"></em>
                                          <em id="51kis"></em>

                                          <div id="51kis"></div>
                                          <dl id="51kis"></dl>

                                          <div id="51kis"><tr id="51kis"><object id="51kis"></object></tr></div><sup id="51kis"></sup><em id="51kis"></em>
                                            <sup id="51kis"><menu id="51kis"></menu></sup>
                                              <div id="51kis"></div>

                                                  <em id="51kis"></em>

                                                  <dl id="51kis"></dl>
                                                  <sup id="51kis"></sup>
                                                    <sup id="51kis"></sup>

                                                    <dl id="51kis"><ins id="51kis"></ins></dl>

                                                    <dl id="51kis"><menu id="51kis"><small id="51kis"></small></menu></dl>

                                                        <div id="51kis"></div>

                                                        <sup id="51kis"></sup>

                                                              <em id="51kis"></em>

                                                              <dl id="51kis"></dl>

                                                                <em id="51kis"></em>
                                                                <em id="51kis"></em>

                                                                <div id="51kis"></div>
                                                                <dl id="51kis"></dl>

                                                                <div id="51kis"><tr id="51kis"><object id="51kis"></object></tr></div><sup id="51kis"></sup><em id="51kis"></em>
                                                                  <sup id="51kis"><menu id="51kis"></menu></sup>
                                                                    <div id="51kis"></div>