Trong hội thảo này, bạn có thể tìm hiểu cách tạo bot Reddit tự động thực hiện những gì bạn muốn. Tôi sẽ chỉ cho bạn cách làm cho bot phản hồi các đề cập cũng như từ khóa. khả năng là vô tận tuy nhiên. Nếu bạn biết Python của mình, bạn có thể khiến bot làm được những điều tuyệt vời hơn. Nhưng hôm nay, chúng ta sẽ tập trung vào việc thiết lập và chạy một bot đơn giản
Hội thảo này tập trung vào việc chỉ làm cho bot hoạt động với các tài nguyên chỉ dành cho trình duyệt. Điều này có nghĩa là bạn sẽ cần sử dụng thay thế. nó. Các chương trình bạn thực hiện trên thay thế. mặc dù nó không riêng tư. Vì bạn cần nhập thông tin cấp quyền truy cập vào bot của mình trong phần thay thế. nó mã, bot của bạn sẽ có thể truy cập CÔNG CỘNG. Nếu bạn muốn đặt nó ở chế độ riêng tư, tất cả những gì bạn phải làm là thực hiện mọi thứ trong thư mục cục bộ và vỏ máy tính của bạn. Tuy nhiên, vì tôi muốn chương trình này hoạt động cho những người không có quyền sử dụng máy tính, nên tôi sẽ chỉ cho bạn cách thực hiện mọi thứ trên repl. nó
Thiết lậpTrước khi tạo bot, bạn cần thực hiện một số việc
Trước tiên, bạn PHẢI đọc quy tắc của bot. Nếu bạn không tuân theo bottiquette, bot của bạn sẽ bị cấm và có thể IP của bạn sẽ bị liệt vào danh sách đen
nghi thức xã giao bot
Tiếp theo, bạn sẽ cần một tài khoản Reddit. Bạn có thể liên kết bot của mình với tài khoản Reddit thông thường hoặc bạn có thể tạo một tài khoản mới. Nếu bạn đang sử dụng thay thế miễn phí. nó, bạn sẽ cần một cái mới vì bạn sẽ phải nhập thông tin đăng nhập tài khoản của mình và những thông tin này sẽ hiển thị công khai. [Ghi chú. Bạn không cần đăng ký bằng email nếu không muốn. ]
Đăng ký Reddit
Bạn cũng sẽ cần tạo một ứng dụng “đăng ký” cho bot của mình. Sử dụng liên kết dưới đây
Tạo ứng dụng
Khi bạn mở liên kết, hãy nhấp vào “bạn có phải là nhà phát triển không”. Nó sẽ dẫn bạn đến một trang như thế này
Đặt tên cho bot của bạn. Chọn tập lệnh. nhập http. //127. 0. 0. 1 vào “chuyển hướng uri”. [Đây là điều Reddit bắt bạn làm. ] Nhấp vào “tạo ứng dụng” và một trang sẽ bật lên cho bạn biết “tập lệnh sử dụng cá nhân” và “bí mật” của bạn. Ghi lại hai chuỗi này xuống. Hãy nhớ rằng, nếu bạn đang sử dụng thay thế. sau đó chúng sẽ được công khai cùng với toàn bộ tệp của bạn
Cuối cùng, bạn sẽ cần truy cập thay thế. nó để lập trình. với thay thế. nó, bạn sẽ không cần tải xuống bất cứ thứ gì vào thiết bị thực tế của mình. Bạn có thể sử dụng thay thế. nó không có tài khoản
thay thế. nó
Sau khi nhấp vào liên kết, hãy nhấp vào “bắt đầu mã hóa” và tạo bản thay thế. nó bằng Python. Sau đó, bạn sẽ mở một trang trông giống như thế này
Tiếp theo, bạn sẽ phải nhấp vào điều khiển [lệnh trên Mac]+shift+p, thao tác này sẽ mở trình bao dòng lệnh ở dưới cùng bên phải. Sao chép dòng mã sau vào trình bao và nhấn enter
pip install praw
Thao tác này sẽ nhắc máy của bạn nhập praw, đây là gói cần thiết cho bot. Sau khi nhập xong, bạn đã hoàn thành tất cả các yêu cầu thiết lập. Tiếp theo, chúng ta sẽ bắt đầu mã hóa
Mã hóa BotBây giờ chúng ta có thể bắt đầu viết mã. Nhận trên chính của bạn. py trên thay thế. nó và gõ hoặc sao chép như sau
import praw
r = praw.Reddit[username = "yourreddituser",
password = "yourredditpw",
client_id = "yourclientid",
client_secret = "yourclientsecret",
user_agent = "yourbotname by /u/yourredditaccount"]
Hãy tìm hiểu những gì chúng ta vừa làm. Dòng đầu tiên đã nhập gói của chúng tôi. Khối mã thứ hai đã bắt đầu phiên bản praw của chúng tôi. Đó là đối tượng Reddit về cơ bản hoạt động như bot của chúng tôi, thứ mà chúng tôi sẽ cần kiểm soát sau này để làm cho bot của chúng tôi hoạt động. Điền vào từng dòng theo thông tin của riêng bạn. ID khách hàng và bí mật nên được ghi lại. User_agent của bạn về cơ bản giúp Reddit xác định chương trình của bạn trong trường hợp cần thiết. Vì vậy, hãy chắc chắn rằng nó mô tả
Bây giờ tôi sẽ chỉ cho bạn hai điều tiềm năng mà bạn có thể khiến bot của mình làm. Đầu tiên là phản hồi các đề cập và thứ hai là phản hồi các từ khóa. Đây là những thứ loại trừ lẫn nhau vì chúng phụ thuộc vào việc truyền phát tự động những thứ khác nhau. Điều này có nghĩa là bạn phải chọn một trong hai, bạn không thể làm cả hai trong một bot
đề cậpNhiều bot Reddit thực hiện một hành động sau khi được gắn thẻ. Những loại bot này được ưa thích hơn vì chúng chỉ làm mọi việc khi chúng được gọi. Điều này sẽ không khiến bạn bị cấm và đưa vào danh sách đen. Để lấy mã cơ bản, hãy nhập hoặc sao chép đoạn mã sau vào phần thay thế của bạn. nó, BÊN DƯỚI mã khởi tạo đối tượng Reddit. Vui lòng đọc các nhận xét [các từ theo sau dấu #] để bạn có thể tìm hiểu một chút về chức năng của các lệnh
messages = r.inbox.stream[] # creates an iterable for your inbox and streams it
for message in messages: # iterates through your messages
try:
if message in r.inbox.mentions[] and message in r.inbox.unread[]: # if this messasge is a mention AND it is unread...
message.reply["hello"] # reply with this message
message.mark_read[] # mark message as read so your bot doesn't respond to it again...
except praw.exceptions.APIException: # Reddit may have rate limits, this prevents your bot from dying due to rate limits
print["probably a rate limit...."]
Từ khóaBot này có thể kiểm tra một số nhận xét nhất định và nếu có từ khóa trong nhận xét, nó sẽ thực hiện một hành động. Làm cho từ khóa trở thành thứ thường được nói có thể khiến bạn bị cấm. Tôi đề nghị thêm một “. ” phía trước từ khóa của bạn để bot chỉ phản hồi khi được gọi. Để lấy mã cơ bản, hãy nhập hoặc sao chép đoạn mã sau vào phần thay thế của bạn. nó, BÊN DƯỚI mã khởi tạo đối tượng Reddit của bạn. Hãy nhớ rằng, mã này không được ở cùng một vị trí với mã trong phần "Đề cập". Vui lòng đọc các nhận xét [các từ theo sau dấu #] để bạn có thể tìm hiểu một chút về chức năng của các lệnh
con trăn
subr = r.subreddit['copypasta'] # this chooses a subreddit you want to get comments from
for comment in subr.stream.comments[skip_existing=True]: # this iterates through the comments from that subreddit as new ones are coming in
try:
if "!bot" in comment.body: # "!bot" is the keyword in this case. replace "bot" with your keyword
comment.reply["hello world..."] # this is what your bot replies to the comment that has the keyword
except praw.exceptions.APIException: # Reddit may have rate limits, this prevents your bot from dying due to rate limits
print["probably a rate limit..."]
Bây giờ mã của bạn hoàn toàn tốt và bạn chỉ cần chạy nó. Vì chương trình của bạn sẽ được phát trực tuyến nên nó sẽ không dừng trừ khi bạn bảo nó
Bạn có thể nhận thấy rằng hiện tại, bot của bạn chỉ chạy khi bạn thay thế. chương trình đang chạy, chỉ trong khoảng thời gian tab của bạn vẫn mở. Do đó, nhiều người lưu trữ bot của họ trên các máy chủ bên ngoài để bot thực sự tự động. Tôi sẽ chỉ cho bạn cách chạy bot của bạn trên nền tảng đám mây, Heroku
Nếu bạn hài lòng mà không cần lưu trữ bot của mình, thì xin chúc mừng, bạn đã hoàn thành hội thảo
Nếu bạn muốn tiến thêm một bước, hãy tiếp tục
lưu trữĐể lưu trữ, bạn sẽ cần có tài khoản GitHub mà tôi cho rằng bạn có và tài khoản Heroku mà chúng tôi sẽ xử lý sau
Hãy quay lại chương trình của chúng ta trên repl. nó. Hãy nhớ từ trước rằng để lưu trữ, bạn phải có một bản sao. nó tài khoản. Đầu tiên, hãy tạo một tệp mới và đặt tên là “Procfile” và nhập vào đó
worker: python main.py
Đây là những gì nó sẽ trông giống như trên thay thế của bạn. nó trang
Về cơ bản, Procfile cho Heroku biết bạn muốn nó chạy cái gì
Bây giờ chúng ta sẽ cần tạo một yêu cầu. txt để cho Heroku biết các phụ thuộc của ứng dụng của chúng tôi là gì. Tạo yêu cầu. txt là một thực hành tốt. Tất cả những gì chúng ta cần làm là control+shift+p lần nữa và gõ vào shell
pip freeze > requirements.txt
Một tệp mới sẽ bật lên được gọi là yêu cầu. txt trông giống như thế này
Tiếp theo, bạn sẽ cần chuyển đến kiểm soát phiên bản trên thanh bên và kết nối GitHub của mình. Nó sẽ nhắc bạn cấp quyền. Bạn sẽ cần phải cung cấp cho thay thế. nó cho phép tất cả các kho GitHub của bạn. Khi bạn đã hoàn tất, bạn sẽ có thể thấy một cái gì đó như thế này
Nhấp vào “Tạo một Repo Git”. Bạn có thể đặt tên cho nó bất cứ điều gì bạn muốn, nhưng hãy nhớ tên này. Nó có thể là công khai hoặc riêng tư, mặc dù hãy nhớ do thay thế. dù sao bot của bạn cũng sẽ không hoàn toàn riêng tư. Tuy nhiên, nếu bạn đang sử dụng môi trường của riêng mình để bảo mật, hãy đặt kho lưu trữ ở chế độ riêng tư để mọi người không thể thấy thông tin đăng nhập của bạn. Bây giờ, mọi thứ sẽ được liên kết với một repo trên GitHub. Tiếp theo, bạn sẽ cần đăng ký tài khoản Heroku
Đăng ký Heroku
Sau khi tạo tài khoản, bạn sẽ cần “tạo ứng dụng”. Bạn có thể đặt tên cho nó bất cứ thứ gì bạn muốn, cái đó có sẵn. Sau khi ứng dụng của bạn được tạo, hãy chuyển đến phần “Triển khai” và nhấp vào “GitHub”
Tìm kiếm kho lưu trữ mà bạn vừa tạo. Nếu bạn nhập đúng tên, nó sẽ hiển thị cho bạn kho lưu trữ của bạn. Nhấp vào “Kết nối”
Đi đến cuối cùng và nhấp vào “Triển khai chi nhánh”
Một cửa sổ nhỏ sẽ hiển thị hiển thị nhật ký. Sau khi đợi khoảng một phút, bạn sẽ thấy thông báo “… đã triển khai cho Heroku”. Bây giờ, bạn có thể vào phần “Tài nguyên”, nơi bạn sẽ thấy các dynos miễn phí của mình. Dynos về cơ bản là vùng chứa sẽ chạy ứng dụng của bạn. Nhấp vào biểu tượng bút chì để chỉnh sửa, bật dyno của bạn và nhấp vào xác nhận
Và… thế là xong. Xin chúc mừng, bot của bạn hiện được Heroku tự động chạy và sẽ thực hiện những gì bạn đã lập trình cho nó
Một điều cần lưu ý là các tài khoản miễn phí trên Heroku chỉ có thể chạy các ứng dụng trong một khoảng thời gian giới hạn hàng tháng. Vì vậy, sử dụng Heroku có nghĩa là bot của bạn sẽ chết một thời gian mỗi tháng