創建自動轉推機器人的終極指南
已發表: 2022-02-23“機器人”這個詞帶來了很多不同的含義,這取決於你對這個詞和生活的體驗。 對於沉浸在科幻小說中的人們來說,它會讓人想起復雜的機器人和未來主義。 對於營銷人員來說,它會讓人想起向他們的網站發送垃圾郵件的軟件。 對於其他人來說,它只是意味著一個用於自動化乏味事情的軟件。
實際上,機器人非常簡單。 它們只是軟件,通常甚至不是特別複雜的軟件。 當然,像谷歌網絡爬蟲這樣的東西很複雜,但它們內置了許多不同的功能。更簡單的東西,比如 Twitter 機器人,真的沒有太多功能。 讓我們看看製作一個需要什麼,嗯?
Twitter 機器人功能
Twitter 機器人不需要做很多事情。 一個簡單的轉推機器人只需要一個看起來像這樣的功能列表:
- 能夠以用戶身份驗證自己,或通過 Twitter 應用程序集成連接到帳戶。
- 廣泛閱讀推文的能力。
- 檢測其閱讀的推文中是否存在某些主題標籤或關鍵字的能力。
- 轉發包含指定主題標籤或關鍵字的推文的能力。
- 檢測它是否轉發給定帖子的能力——本質上是驗證,以確保它不會陷入轉發其推文消息的循環中。
五個項目,大部分都很容易做到,還不錯。 現在,最簡單的方法是使用 Google 腳本,您甚至不需要知道如何編寫代碼。 但是,如果您想使用更高級的功能,您可能需要深入研究代碼。 或不! 這完全取決於你。
定義搜索字符串
第一步是弄清楚你希望機器人的目標是什麼。 您可以稍後更改它以修改機器人,但它有助於立即了解任務的複雜程度。 你會想用 Twitter 的搜索欄來格式化它,因為這就是機器人將使用的。 這意味著使用在 Twitter 上工作的搜索運算符。 一些例子包括:
- “www.URL.com min_retweets:5 OR min_faves:5 -RT” 此字符串將搜索包含您選擇的 URL 的推文,並且僅搜索具有 5 個或更多收藏或轉發的推文。 這會將轉推本身從搜索結果中刪除,並且只會為您提供至少已經有一些參與度的推文。 –RT 位還用於刪除手動轉發。
- “#Keyword –RT –filter:links” 此字符串將搜索包含您選擇的主題標籤的推文,並使用過濾器刪除包含鏈接的推文,因為它與前面的運算符是多餘的。 –RT 再次刪除了手動轉發。
- “#Keyword near:”Seattle,WA” within:20mi” 此字符串將搜索包含您選擇的主題標籤的推文,但僅搜索由所列地理位置 20 英里範圍內的人(在本例中為西雅圖)發布的推文。 它沒有 –RT 過濾器,因此它可以識別最初由區域外人員發布但在目標區域內轉推的推文。
您可以根據自己的喜好混合搭配這些內容。 還有其他過濾器。 你應該做的是去 Twitter 的搜索,只是玩弄變量和過濾器,直到你想出一個搜索查詢,它給你你想看到的東西,僅此而已。 複製這些字符串,以便以後使用。
編碼機器人
在開始製作機器人之前,您應該做的第一件事是註冊一個新的 Twitter 帳戶。 它擁有什麼個人資料信息並不重要,您只是將其用於測試。 這是因為 Twitter 對機器人如何在其網站上採取行動有一些非常嚴格的規定。 如果您嘗試使用您的主要帳戶測試機器人並且機器人越界,您的主要帳戶突然被禁止,您無能為力。 通過創建一個虛擬帳戶來避免該問題,如果它被禁止則無關緊要。

Twitter 關於自動化和機器人的規則是什麼? 您可以在此處閱讀詳細信息,但我將總結要點。
- 僅發布有關趨勢主題的自動化被視為對用戶體驗有害,因此被禁止。
- 自動轉推通常被視為垃圾郵件並被禁止批量轉發,但 Twitter 批准的應用程序允許有限轉推。
- 除非收件人同意接收消息,否則禁止發送直接消息的自動化。
- 禁止批量喜歡推文的自動化。
不幸的是,一個只以批量方式轉發內容的應用程序是違反規則的。 我們的應用程序計劃在轉發時更有針對性,減少隨意性,但它仍然可能違反規則。 通過製作這樣的機器人,您正在避開一條線,因此請謹慎行事,不要將它與您真正關心的帳戶一起使用。
您還需要設置 Google Drive,以管理您的代碼並使用 Google Scripts 來設置此機器人。 當然,如果您熟悉其他開發環境,則可以使用它們,但此時您可能不需要閱讀本指南。
現在,您要做的就是訪問apps.twitter.com 上的Twitter 應用程序開發人員部分並創建一個新的項目應用程序。 您需要為應用程序指定名稱、描述和 URL,然後單擊以創建它。
創建應用程序後,單擊“密鑰和訪問令牌”部分,然後單擊以創建訪問令牌。 這將為您生成一個密鑰,您需要隨身攜帶。
我們在這裡創建的機器人是 Amit Agarwal 創建的機器人的變體,可以通過快速的 Google 搜索找到。 你會在頂部看到很多棕色的內容和一點點黑色的內容。 棕色是評論; 它們實際上是不可見的。 黑色是實際代碼。 頂部的行是您需要編輯的行。 你看到它在哪裡有你的消費者和訪問密鑰的線路嗎? 在那裡添加您的數據。 您還需要添加在第一步中創建的搜索字符串。

如果需要,您可以向下滾動並閱讀其餘代碼。 但是,除非您知道自己在做什麼,否則您不應該更改任何內容。 該機器人基本上每五分鐘檢查一次 Twitter 是否有符合您設置的搜索字符串的新內容。 當它檢測到某些內容時,它會轉發並收藏它。 它還在動作之間有一個內置的半隨機延遲,介於 10 秒和 1 分鐘之間,以使其動作看起來不像機器人。 很容易檢測到計時器上的常規動作; 添加隨機計時器有助於將風險降至最低。
現在,在您的 Google Drive 中,只需單擊運行並啟動機器人。 而已! 它已設置為運行並將一直運行到您將其關閉為止。 要關閉它,請返回驅動器並單擊運行並關閉機器人。
另一種機器人方法
下一個方法也是基於 Amit 的一個腳本,但它更迂迴一些。 因此,它也更難被檢測為機器人,假設您沒有以明顯是機器人的方式使用它。
這次您要做的是登錄 Twitter 並創建一個小部件。 要使用您的搜索查詢字符串之一,請單擊小部件創建器的“搜索”選項卡並在此處輸入。 創建小部件,然後復制 URL。 URL 的一部分將是一個長數字字符串; 將其複制為小部件的 ID。
接下來,您需要獲取 Amit 的腳本,在此處找到。 該腳本所做的是將您的 Twitter 小部件(在本例中為搜索查詢結果的嵌入式版本)轉換為 RSS 提要。 這很重要,因為 Twitter 停止支持推文到 RSS 的轉換,這就是我們需要使用這個第三方腳本的原因。 請注意,由於最近的一些 Twitter 更改,上面鏈接中的腳本可能無法正常工作。 如果沒有,請檢查此鏈接並在那裡使用腳本。

和以前一樣,一旦腳本在您的 Google Drive 中,您需要運行它。 它會要求對您的 Twitter 帳戶進行授權。 讓它授權,你就可以開始了。 腳本運行後,您需要單擊發布並單擊 deblow 作為 Web 應用程序。 讓每個人都可以看到它,點擊創建它,然後復制它給你的鏈接。 這是指向 RSS 提要的鏈接,但它只是顯示您的提要。 您需要做的是添加一個 ? 到 URL 的末尾並插入您之前複製的 Twitter 小部件 ID。 這將在小部件上執行代碼,而不是您的授權提要。
這一切都將您的搜索查詢轉換為結果的 RSS 提要。 不過,僅此一項並不能滿足我們轉發的目的。 接下來,我們需要設置一些接受 RSS 輸入並轉發它的東西。 為此,我們將使用 IFTTT 進行一些宏自動化。
註冊 IFTTT 後,您可以創建新配方。 單擊以在您的小部件提要的 URL 中選擇一個 RSS 輸入和提要。 單擊下一步,然後單擊 Twitter 作為輸出。 IFTTT 會在此處通過 Twitter 詢問您正在採取什麼行動; 您應該單擊“發布推文”並在發生的情況框中添加“_RT _”。

現在會發生的是腳本將運行,它會運行您的 Twitter 搜索。 當出現新結果時,它會發佈到此自定義 RSS 提要。 當此 RSS 提要中出現新內容時,您的 IFTTT 食譜機器人將手動轉發該推文。 建議您在搜索字符串中使用 –RT 過濾器,以避免一遍又一遍地轉發您的機器人。
一種 Javascript 方法
這第三種方法更健壯一些,但也需要您了解一點編碼。 再一次,您將希望從為您的機器人創建一個 Twitter 帳戶開始,因為從您的主帳戶運行它會導致問題。 在這個新帳戶上,創建一個名為 cool-people 的用戶列表,並將您的普通帳戶添加到列表中。
接下來,使用您的新帳戶登錄並在apps.twitter.com 頁面上完成製作新應用程序的過程。 您需要將訪問級別設置為讀寫,確保回調 URL 為空,然後創建訪問令牌。 和以前一樣,複製訪問令牌密鑰和各種數據。
我們用於此機器人的代碼由 Bryan Braun 在 Github 上發布,但您可能需要使用 Git 來獲取代碼。

Github 在這裡,git 所需的代碼是
- 獲取克隆 https://github.com/bryanbraun/twitter-listbot.git
- cd twitter-listbot
現在您需要在任何不附加元數據的文本編輯器中打開 index.js 文件。 也就是說,像 Wordpad 或 Notepad++ 之類的東西,而不是 Microsoft Word。 您需要將 me: XXXXXX 條目更改為您的機器人帳戶的用戶名減去 @,並確保 myList 字段與您上面的列表名稱相同。 您實際上不需要將其命名為cool-people,這就是默認值。
現在該機器人將轉發列表中人員的推文。 這與搜索字段轉推機器人並不完全相同,但您可以將它與另一個機器人結合使用來管理您希望它看到的推文。
此時,您需要進行一些複雜的編碼。 您需要將訪問令牌信息插入新機器人,並且需要使用 nodeJS 運行它。 它會打開一個窗口,看起來它什麼也沒做,這只是意味著它正在監聽新的推文。 在您的普通帳戶上發布推文,機器人帳戶應該會看到並轉發它。
您在這裡有一些選擇,包括將機器人放在服務器上運行的能力,這樣您就不會被迫讓您的計算機運行並連接到互聯網以保持機器人存活。 您可以在此處閱讀有關身份驗證和服務器託管的更多信息。
與 JavaScript 或 Google Scripts 相比,您更熟悉 PHP 嗎? 如果是這樣,您可以在 PHP 中製作一個類似的機器人。 它執行與 IFTTT 設置相同的 Twitter 到 RSS 到 Retweet 操作序列,除了它是您使用 PHP 運行的更可定制的代碼。 您可以在此處閱讀有關該內容的所有信息; 我既沒有篇幅也沒有興趣為這篇文章詳細解釋 PHP。 不過,該機器人有點複雜,它包括用於發布自定義消息以感謝用戶的代碼,以及當有人提到你的名字時的一些隨機回复。
總而言之,這些方法中的至少一種應該可以讓您獲得願意使用的機器人。 只要記住盡量減少它所做的類似垃圾郵件的活動。 如果您擔心垃圾郵件,請將機器人關閉一段時間,或增加帖子之間的延遲以降低頻率。 您還可以考慮提高轉發的參與度閾值,以防 5 個喜歡的閾值太低。
