Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

TL; DR: Bài đăng trên blog này nhằm mục đích chứng minh cách tạo một bot twitter tùy chỉnh trong Python bằng API Twitter chính thức. Bot sẽ trả lời mỗi tweet trong đó nó được đề cập với một từ khóa cụ thể. Câu trả lời sẽ ở dạng một hình ảnh với một báo giá được viết trên đó. This blog post is aimed to demonstrate how to make a custom Twitter bot in Python using the official Twitter API. The bot will reply to every tweet in which it got mentioned with a specific keyword. The reply will be in the form of an image with a quote written on it.

Mã nguồn của ứng dụng này có sẵn trong kho lưu trữ GitHub này

Giới thiệu

Trong bài viết này, bạn sẽ học cách tạo bot Twitter của riêng bạn trong Python bằng Tweepy, một thư viện Python để truy cập API Twitter chính thức.

Bạn sẽ tạo một câu trả lời để đề cập đến bot, sẽ gửi trả lời cho tweet của mọi người, người đã đề cập đến nó với một từ khóa cụ thể.Reply to mentions bot, which will send a reply to everyone's tweet who has mentioned it with a specific keyword.

Câu trả lời sẽ ở dạng một hình ảnh mà bạn sẽ tạo và đặt một số văn bản lên nó. Văn bản này sẽ là một trích dẫn mà bạn sẽ tìm nạp từ API của bên thứ ba.

Đây là cách nó sẽ trông như thế nào:

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Điều kiện tiên quyết

Để làm theo với hướng dẫn này, hãy chắc chắn rằng bạn có:

Một tài khoản AWS

Bạn sẽ triển khai ứng dụng cuối cùng cho AWS đàn hồi Beanstalk, vì vậy hãy chắc chắn rằng bạn đã đăng ký trên AWS.

Thông tin xác thực API Twitter

Để cho phép bot của bạn tương tác với Twitter, trước tiên bạn phải đăng ký tài khoản nhà phát triển Twitter và tạo một ứng dụng mà Twitter sẽ cấp cho bạn quyền truy cập (có một lời giải thích chi tiết về bước này trong phần tiếp theo).

Python 3

Tại thời điểm viết bài viết này, phiên bản mới nhất là Python 3.9, nhưng luôn nên chọn phiên bản sửa đổi một điểm sau phiên bản mới nhất để bạn không phải đối mặt với bất kỳ vấn đề tương thích nào với các mô-đun bên thứ ba. Đối với hướng dẫn này, bạn có thể đi với Python 3.8.

Đã cài đặt các thư viện Python bên ngoài này trên môi trường địa phương của bạn

  1. Tweepy - Để tương tác với API Twitter
  2. Gối - Để tạo một hình ảnh và thêm các văn bản trên nó
  3. Yêu cầu - Để thực hiện các yêu cầu HTTP cho API Trình tạo báo giá ngẫu nhiên
  4. Apscheduler - để lên lịch công việc của bạn theo định kỳ
  5. Bình - Để tạo một ứng dụng web để triển khai ứng dụng của bạn trên beanstalk đàn hồi

Nghỉ ngơi tất cả các thư viện khác mà bạn sẽ thấy trong dự án này là một phần của thư viện tiêu chuẩn của Python, vì vậy bạn không cần phải cài đặt chúng.

Thông tin xác thực API Twitter

Bất kỳ yêu cầu nào đang truy cập API Twitter chính thức đều yêu cầu OAuth xác thực. Đó là lý do tại sao bạn cần tạo những thông tin cần thiết đó để có thể sử dụng API. Những thông tin này bao gồm:

  1. Một khóa tiêu dùng
  2. Một bí mật tiêu dùng
  3. Một mã thông báo truy cập
  4. Một bí mật truy cập

Bạn cần làm theo các bước dưới đây để tạo thông tin đăng nhập của mình sau khi bạn đã đăng ký lên Twitter:

Bước 1: Áp dụng tài khoản nhà phát triển Twitter

Truy cập nền tảng nhà phát triển Twitter để đăng ký tài khoản nhà phát triển.

Twitter sẽ yêu cầu một số thông tin về cách bạn dự định sử dụng tài khoản nhà phát triển. Vì vậy, bạn phải chỉ định trường hợp sử dụng cho ứng dụng của bạn.

Cố gắng cụ thể nhất có thể về việc sử dụng dự định của bạn để có cơ hội chấp thuận nhanh hơn và tốt hơn.

Khi bạn nộp đơn, bạn sẽ hạ cánh trên màn hình này:

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Bước 2: Tạo một ứng dụng

Bạn sẽ nhận được xác nhận trở lại trong vòng một tuần. Khi quyền truy cập tài khoản nhà phát triển Twitter của bạn được phê duyệt, hãy tạo một dự án trên bảng điều khiển cổng thông tin nhà phát triển Twitter.

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Bạn phải thực hiện quy trình này vì Twitter chỉ cho phép thông tin xác thực cho các ứng dụng. Một ứng dụng có thể được định nghĩa là bất kỳ công cụ nào sử dụng API Twitter. Bạn cần cung cấp thông tin sau về dự án của bạn:

  • Tên dự án: Một tên để xác định dự án của bạn (chẳng hạn như trả lời-to-mention-bot): a name to identify your project (such as Reply-To-Mention-Bot)

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

  • Thể loại: Chọn danh mục mà dự án của bạn thuộc về. Trong trường hợp này, chọn "Làm bot.": Select the category to which your project belongs. In this case, choose "Making a bot."

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

  • Mô tả: Mục đích của dự án của bạn hoặc cách người dùng sẽ sử dụng ứng dụng của bạn (chẳng hạn như ứng dụng này được sử dụng để tự động trả lời các tweet): The purpose of your project or how users will use your app (such as this app is used to automatically respond to tweets)

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

  • Tên của ứng dụng: Cuối cùng, hãy nhập tên ứng dụng của bạn: Finally, enter the name of your app

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Bước 3: Tạo thông tin xác thực

Để tạo thông tin xác thực của bạn, trước tiên, hãy truy cập phần Ứng dụng Twitter của bạn. Ở đây bạn sẽ tìm thấy tab "phím và mã thông báo"; Nhấp vào điều này sẽ đưa bạn đến một trang khác, nơi bạn có thể tạo thông tin đăng nhập.

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Sau khi tạo thông tin đăng nhập, hãy lưu chúng vào máy cục bộ của bạn để sử dụng sau này trong mã của bạn. Bên trong thư mục dự án của bạn, hãy tạo một tệp mới có tên

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
7 và lưu trữ bốn khóa này ở định dạng giá trị khóa như hình dưới đây:

access_token="XXXXXXX"
access_token_secret="XXXXXXXX"
API_key="XXXXXXX"
API_secret_key="XXXXXXXX"

Bạn thậm chí có thể kiểm tra thông tin đăng nhập để kiểm tra xem mọi thứ có hoạt động như mong đợi bằng cách sử dụng đoạn mã sau không:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")

Nếu mọi thứ là chính xác, bạn sẽ có thể thấy một phản hồi nói rằng "xác thực thành công".

Hiểu Tweepy

Tweepy là một thư viện Python có nguồn gốc mở, dễ sử dụng để truy cập API Twitter. Nó cung cấp cho bạn một giao diện để truy cập API từ ứng dụng Python của bạn.

Để cài đặt phiên bản mới nhất của Tweepy, hãy nhập lệnh sau vào bảng điều khiển của bạn:

pip install tweepy

Ngoài ra, bạn cũng có thể cài đặt nó từ kho lưu trữ GitHub.

pip install git+https://github.com/tweepy/tweepy.git

Bây giờ chúng ta hãy hiểu một số chức năng cơ bản của nó:

OAuth

Tweepy cung cấp một lớp

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
8 chăm sóc OAuth theo yêu cầu của Twitter để xác thực các cuộc gọi API. Mã bạn vừa thấy ở trên mô tả chức năng OAuth của Tweepy.

Vòng bao API Twitter

Tweepy cũng cung cấp một lớp API để truy cập các phương thức API của Twitter Restful, bạn có thể sử dụng để truy cập các chức năng Twitter khác nhau. Bạn có thể tìm thấy các phương pháp đó ở đây và các phương pháp được sử dụng phổ biến nhất được liệt kê dưới đây:

  • Phương pháp cho các tweet
  • Phương pháp cho người dùng
  • Phương pháp cho các mốc thời gian của người dùng
  • Phương pháp cho xu hướng
  • Phương pháp cho lượt thích

Mô hình

Khi bạn gọi bất kỳ phương thức API nào mà bạn vừa thấy ở trên, bạn sẽ nhận được một phiên bản lớp mô hình Tweepy để phản hồi. Điều này sẽ chứa phản hồi được trả về từ Twitter. Ví dụ:

user = api.get_user('apoorv__tyagi')

Điều này trả về một mô hình người dùng chứa dữ liệu mà bạn có thể sử dụng thêm trong ứng dụng của mình. Ví dụ:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
9

Tìm nạp trích dẫn

Bây giờ bạn sẽ bắt đầu với bước đầu tiên để xây dựng bot của bạn. Như đã nêu ở trên, khi ai đó đề cập đến bot của bạn, nó sẽ trả lời họ với một hình ảnh có một báo giá được viết trên đó.

Vì vậy, để tìm nạp báo giá ở nơi đầu tiên, bạn sẽ gọi API Trình tạo báo giá ngẫu nhiên để thực hiện điều đó, tạo tệp Python

pip install tweepy
0 và tạo một phương thức mới bên trong nó sẽ thực hiện yêu cầu HTTP cho điểm cuối API này và nhận được báo giá trong phản ứng. Đối với điều này, bạn có thể sử dụng thư viện
pip install tweepy
1 của Python.

Thư viện yêu cầu được sử dụng để thực hiện các yêu cầu HTTP trong Python. Nó trừu tượng hóa sự phức tạp của việc thực hiện các yêu cầu đằng sau một API đơn giản để bạn chỉ có thể tập trung vào việc tương tác với các dịch vụ và tiêu thụ dữ liệu trong ứng dụng của mình.

def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")

Phản hồi trông như thế này:

{
   "_id": "FGX8aUpiiS5z",
   "tags": [
      "famous-quotes"
   ],
   "content": "I do not believe in a fate that falls on men however they act, but I do believe in a fate that falls on them unless they act.",
   "author": "Buddha",
   "authorSlug": "buddha",
   "length": 125
}

API trả về phản hồi JSON, vì vậy để phân tích nó, bạn có thể sử dụng thư viện

pip install tweepy
2. JSON là một phần của thư viện tiêu chuẩn của Python, vì vậy bạn có thể trực tiếp nhập nó bằng cách sử dụng:
pip install tweepy
3.

Từ phản hồi, bạn sẽ chỉ cần nội dung và tác giả, vì vậy bạn sẽ làm cho chức năng của bạn chỉ trả về các giá trị đó. Đây là cách chức năng hoàn chỉnh sẽ trông như thế nào:

def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")

    res = json.loads(response.text)
    return res['content'] + "-" + res['author']

Tạo hình ảnh

Bạn đã có văn bản của bạn. Bây giờ bạn cần tạo một hình ảnh và đặt văn bản này lên nó.

Bất cứ khi nào bạn cần đối phó với bất kỳ tác vụ liên quan đến hình ảnh nào trong Python, trước tiên hãy luôn tìm kiếm thư viện

pip install tweepy
4. Gối là thư viện hình ảnh của Python, cung cấp các khả năng xử lý hình ảnh mạnh mẽ cho trình thông dịch Python cùng với việc cung cấp hỗ trợ định dạng tệp rộng rãi.

Tạo một tệp riêng biệt, đặt tên cho nó

pip install tweepy
5 và thêm một hàm sẽ chấp nhận báo giá dưới dạng chuỗi trong tham số của nó và sẽ khởi tạo tất cả các biến bắt buộc để tạo hình ảnh:

def get_image(quote):
    image = Image.new('RGB', (800, 500), color=(0, 0, 0))
    font = ImageFont.truetype("Arial.ttf", 40)
    text_color = (200, 200, 200)
    text_start_height = 100
    write_text_on_image(image, quote, font, text_color, text_start_height)
    image.save('created_image.png')

Hãy hiểu làm thế nào chức năng này hoạt động:

  • Phương thức
    pip install tweepy
    6 Tạo một hình ảnh mới bằng chế độ & kích thước được cung cấp. Tham số đầu tiên là chế độ được sử dụng để tạo hình ảnh mới. (Nó có thể là RGB, RGBA). Tham số thứ hai là kích thước. Kích thước được cung cấp trong pixel như một bộ chiều rộng & chiều cao. Tham số cuối cùng là màu, tức là, sử dụng màu nào cho nền hình ảnh (mặc định là màu đen).mode to be used for creating the new image. (It could be RGB, RGBA). The second parameter is size. Size is provided in pixels as a tuple of width & height. The last parameter is the color, i.e., what color to use for the image background (Default is black).
  • pip install tweepy
    7 tạo ra một đối tượng phông chữ. Hàm này tải một đối tượng phông chữ từ tệp phông chữ đã cho với kích thước phông chữ được chỉ định. Trong trường hợp này, bạn sẽ sử dụng "Arial", bạn cũng có thể sử dụng bất kỳ phông chữ nào khác mà bạn chọn bằng cách tải xuống từ đây. Đảm bảo tệp phông chữ có phần mở rộng tệp .TTF (Phông chữ TrueType) và bạn lưu nó bên trong thư mục gốc của dự án của bạn..ttf (TrueType font) file extension, and you save it inside the root directory of your project.
  • pip install tweepy
    8 &
    pip install tweepy
    9 Như chính tên này mô tả, đây là màu sắc và chiều cao bắt đầu của văn bản, tương ứng. RGB (200.200.200) là màu "màu xám nhạt" có thể hoạt động tốt trên hình ảnh màu đen của bạn.
  • Bạn gọi hàm
    pip install git+https://github.com/tweepy/tweepy.git
    0, sẽ đặt văn bản này lên hình ảnh bằng các biến này.
  • pip install git+https://github.com/tweepy/tweepy.git
    1 cuối cùng sẽ lưu hình ảnh dưới dạng tệp
    pip install git+https://github.com/tweepy/tweepy.git
    2 trong thư mục gốc của bạn. Nếu có một tệp đã có với tên này, nó sẽ tự động thay thế nó bằng tệp mới.
def write_text_on_image(image, text, font, text_color, text_start_height):
    draw = ImageDraw.Draw(image)
    image_width, image_height = image.size
    y_text = text_start_height
    lines = textwrap.wrap(text, width=40)
    for line in lines:
        line_width, line_height = font.getsize(line)
        draw.text(((image_width - line_width) / 2, y_text),line, font=font, fill=text_color)
        y_text += line_height

Đây là chức năng tiếp theo trong cùng một tệp,

pip install tweepy
5, trong đó bạn sẽ đặt văn bản lên hình ảnh. Chúng ta cũng hiểu rằng hoạt động của chức năng này:

  • Mô -đun
    pip install git+https://github.com/tweepy/tweepy.git
    4 được sử dụng để tạo các đối tượng hình ảnh 2D.
  • pip install git+https://github.com/tweepy/tweepy.git
    5 kết thúc đoạn văn đơn trong văn bản (một chuỗi), do đó, mọi dòng đều dài nhất là 'chiều rộng' (= 40) ký tự. Nó trả về một danh sách các dòng đầu ra.
  • pip install git+https://github.com/tweepy/tweepy.git
    6 vẽ chuỗi tại vị trí đã cho. Syntax hoàn chỉnh và danh sách các tham số mà nó chấp nhận được xác định dưới đây:
    pip install git+https://github.com/tweepy/tweepy.git
    7

Parameters:

  1. XY - góc trên cùng bên trái của văn bản.
  2. Văn bản - Văn bản được vẽ.
  3. điền - màu để sử dụng cho văn bản.
  4. Phông chữ - một thể hiện ImageFont.

Cuối cùng, đây là cách

pip install tweepy
5 của bạn sẽ trông như thế nào:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
0

Trả lời các đề cập bằng cách kiểm tra định kỳ các tweet

Bạn đã có báo giá cũng như một hình ảnh sử dụng nó. Bây giờ, điều duy nhất còn lại là kiểm tra các tweet như vậy mà bạn được đề cập. Ở đây, ngoài việc chỉ kiểm tra đề cập, bạn cũng sẽ tìm kiếm một từ khóa cụ thể hoặc một hashtag trong đó.

Nếu một từ khóa/hashtag cụ thể được tìm thấy trong tweet, bạn sẽ thích và gửi trả lời cho tweet cụ thể đó.

Trong trường hợp này, bạn có thể đi với "#QOD" (viết tắt của "Trích dẫn trong ngày") làm từ khóa của bạn.#qod" (short for "Quote Of the Day") as your keyword.

Trở lại bên trong tệp

pip install tweepy
0, đây là chức năng để đạt được điều này:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
1
  • Hàm
    user = api.get_user('apoorv__tyagi')
    0 lấy Last_id làm tham số duy nhất của nó. Biến này lưu trữ tweet cuối cùng mà bạn đã trả lời và được sử dụng để chỉ tìm nạp các đề cập được tạo sau khi những người đã được xử lý. Vì vậy, lần đầu tiên khi bạn gọi hàm, bạn sẽ đặt giá trị của nó là 0 và trong cuộc gọi tiếp theo, bạn sẽ tiếp tục cập nhật giá trị này.
  • Hàm
    user = api.get_user('apoorv__tyagi')
    1 trong mô -đun Tweepy được sử dụng để có được các tweet gần đây nhất. Tham số đầu tiên, tức là, Last_id, được sử dụng để chỉ tìm nạp các tweet mới hơn id được chỉ định này. Theo mặc định, nó trả về 20 tweet gần đây nhất. tweet_mode = 'extended' được sử dụng để lấy chuỗi chứa toàn bộ văn bản chưa được đánh dấu của tweet. Giá trị mặc định là "compat" chỉ trả về văn bản chỉ bị cắt giảm 140 ký tự.last_id, is used to fetch only the tweets newer than this specified ID. By default, it returns 20 most recent tweets. tweet_mode='extended' is used to get the string that contains the entire untruncated text of the Tweet. The default value is "compat" which returns text truncated to 140 characters only.

Sau đó, bạn lặp qua tất cả các tweet đó theo thứ tự đảo ngược, tức là, tweet lâu đời nhất trước và với mỗi tweet đề cập đến bạn, tweet được thích sử dụng

user = api.get_user('apoorv__tyagi')
2, chỉ lấy tweet_id làm tham số của nó.

Câu trả lời cho tweet này được gửi bằng cách sử dụng

user = api.get_user('apoorv__tyagi')
3 để xử lý Twitter cho tác giả tweet gốc (bạn vượt qua nó bằng cách sử dụng Danh sách các phương tiện trong trường hợp của bạn là hình ảnh duy nhất bạn đã tạo trước đó.mention.user.screen_name), text content(if any), original tweet id on which you are replying, and finally the list of media which in your case is the single image you previously generated.

Lưu id tweet để tránh lặp lại

Bạn cần đảm bảo tránh trả lời lại cùng một tweet. Đối với điều đó, bạn sẽ chỉ cần lưu trữ ID tweet mà bạn đã trả lời lần cuối trong một tệp văn bản

user = api.get_user('apoorv__tyagi')
4 và bạn sẽ chỉ kiểm tra các tweet được đăng sau đó. Điều này sẽ được tự động xử lý bằng phương thức
user = api.get_user('apoorv__tyagi')
1 vì ID tweet có thể sắp xếp thời gian.

Và bây giờ, thay vì tự chuyển Last_id cho

user = api.get_user('apoorv__tyagi')
0, bạn sẽ chuyển tệp chứa ID cuối cùng này và chức năng của bạn sẽ tìm nạp ID từ tệp và cuối cùng, tệp sẽ được cập nhật với tệp mới nhất.

Đây là cách phiên bản cuối cùng của hàm

user = api.get_user('apoorv__tyagi')
0 sẽ trông như thế nào:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
2

Bạn sẽ quan sát rằng hai chức năng tiện ích mới cũng được thêm vào đây là

user = api.get_user('apoorv__tyagi')
8 và
user = api.get_user('apoorv__tyagi')
9.

user = api.get_user('apoorv__tyagi')
8 lấy tên tệp làm tham số và chỉ cần lấy ID được lưu trữ bên trong tệp văn bản này, trong khi
user = api.get_user('apoorv__tyagi')
9 cùng với tên tệp sẽ lấy tweet_id mới nhất và cập nhật tệp với ID mới nhất này.

Sau khi kết hợp mọi thứ lại với nhau, đây là cách

pip install tweepy
0 hoàn chỉnh của bạn sẽ trông như thế nào:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
3

Triển khai bot đến máy chủ

Bước cuối cùng sẽ là triển khai mã của bạn đến máy chủ. Trong phần này, bạn sẽ tìm hiểu cách bạn có thể triển khai ứng dụng Python cho AWS đàn hồi Beanstalk.

Với beanstalk đàn hồi, bạn có thể nhanh chóng triển khai và quản lý các ứng dụng trong đám mây AWS mà không phải lo lắng về cơ sở hạ tầng chạy các ứng dụng đó. Nó làm giảm độ phức tạp của quản lý mà không hạn chế lựa chọn hoặc kiểm soát. Bạn chỉ cần tải lên ứng dụng của mình và beanstalk đàn hồi tự động xử lý các chi tiết về việc cung cấp năng lực, cân bằng tải, mở rộng và giám sát sức khỏe ứng dụng.

Đây là cách bạn sẽ tiến hành:

  • Tạo môi trường Beanstalk đàn hồi AWS cho ứng dụng Python
  • Tạo một ứng dụng bình đơn giản cho bot twitter của bạn
  • Tải lên ứng dụng Flask của bạn trên AWS đàn hồi Beanstalk
  • Lỗi gỡ lỗi qua nhật ký

Tạo môi trường Beanstalk đàn hồi

Khi bạn đã đăng nhập vào tài khoản AWS của mình, hãy truy cập bảng tìm kiếm ở trên cùng, nhập và chọn "beanstalk đàn hồi" và nhấp vào Tạo một ứng dụng mới ở phía trên bên phải.

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Nó sẽ yêu cầu của bạn:

  1. Tên ứng dụng
  2. Thẻ ứng dụng (không bắt buộc)
  3. Nền tảng
  4. Mã ứng dụng

Đối với các thẻ, bạn có thể thêm tối đa 50 thẻ cho tài nguyên của các ứng dụng Beanstalk đàn hồi AWS của bạn. Thẻ có thể giúp bạn phân loại tài nguyên. Nếu bạn đang quản lý nhiều tài nguyên ứng dụng AWS, thì các thẻ này có thể khá hữu ích.

Đối với nền tảng, hãy chọn "Python" từ bản thả xuống và nó sẽ tự lấp đầy "nhánh nền tảng" và "phiên bản".

Đối với mã ứng dụng, bạn sẽ tải lên mã của mình trên beanstalk đàn hồi sau. Vì vậy, bây giờ, hãy giữ "ứng dụng mẫu" được chọn và nhấn nút Tạo ứng dụng. Nó sẽ mất một vài phút trước khi nó sẵn sàng.

Tạo một ứng dụng Flask

Mặc dù AWS đang tạo ra một môi trường cho bạn, trong lúc này, hãy tạo một tệp mới có tên

def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")
3 và đặt mã sau trong đó:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
4

Đây là một ứng dụng bình đơn giản, nơi bạn có thể tạo một chức năng gọi là

def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")
4, sẽ chạy mỗi phút bằng cách sử dụng
def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")
5, cuối cùng sẽ gọi chức năng chính của tệp
pip install tweepy
0 của bạn.

Xin lưu ý rằng beanstalk đàn hồi mong đợi tên của thể hiện đối tượng ứng dụng bình của bạn là

def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")
7. Nếu bạn sẽ sử dụng bất kỳ tên nào khác, thì beanstalk đàn hồi sẽ không tải ứng dụng của bạn.

Tải và định cấu hình ứng dụng lên AWS

Để định cấu hình tài nguyên AWS và môi trường của bạn, bạn có thể thêm các tệp cấu hình beanstalk đàn hồi (.ebextensions) vào mã nguồn của ứng dụng web.

Các tệp cấu hình là các tài liệu được định dạng YAML (JSON cũng được hỗ trợ) với phần mở rộng tệp .config được đặt bên trong thư mục có tên

def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")
8 và triển khai cùng với mã nguồn ứng dụng của bạn.

Đối với dự án này, hãy tạo một thư mục mới

def get_quote():
    URL = "https://api.quotable.io/random"
    try:
        response = requests.get(URL)
    except:
        print("Error while calling API...")
8 trong thư mục nguồn của mã của bạn và tạo một tệp mới dưới dạng
{
   "_id": "FGX8aUpiiS5z",
   "tags": [
      "famous-quotes"
   ],
   "content": "I do not believe in a fate that falls on men however they act, but I do believe in a fate that falls on them unless they act.",
   "author": "Buddha",
   "authorSlug": "buddha",
   "length": 125
}
0 trong thư mục đó. Sao chép mã bên dưới mã trong đó:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
5

Bạn cũng sẽ cần tạo một tệp

{
   "_id": "FGX8aUpiiS5z",
   "tags": [
      "famous-quotes"
   ],
   "content": "I do not believe in a fate that falls on men however they act, but I do believe in a fate that falls on them unless they act.",
   "author": "Buddha",
   "authorSlug": "buddha",
   "length": 125
}
1, trong đó sẽ chứa tất cả các thư viện Python bên ngoài được yêu cầu trong dự án của bạn cho Beanstalk đàn hồi để định cấu hình môi trường theo nhu cầu của ứng dụng.

Để tạo tệp này, chỉ cần chạy lệnh sau:

{
   "_id": "FGX8aUpiiS5z",
   "tags": [
      "famous-quotes"
   ],
   "content": "I do not believe in a fate that falls on men however they act, but I do believe in a fate that falls on them unless they act.",
   "author": "Buddha",
   "authorSlug": "buddha",
   "length": 125
}
2

Bây giờ bạn sẽ cần phải khóa tất cả các tệp lại với nhau để tải lên ứng dụng Flask trên beanstalk đàn hồi. Bây giờ bạn nên có cấu trúc sau trong thư mục dự án của mình:

import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler("CONSUMER_KEY", "CONSUMER_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)

try:
    api.verify_credentials()
    print("Authentication Successful")
except:
    print("Authentication Error")
6

Chọn tất cả các tệp và thư mục được đề cập và zip tất cả chúng lại với nhau. Quay lại ứng dụng AWS của bạn và nhấp vào mã tải lên.Upload Code.

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Chọn tệp zip của bạn và nhấp vào triển khai. Sau đó đợi cho đến khi ứng dụng của bạn được triển khai và biểu tượng sức khỏe chuyển sang màu xanh lá cây. Nếu bạn đã hoàn thành tất cả các bước này thành công, liên kết trang web của bạn sẽ đưa bạn đến một trang nói rằng "Theo dõi @zeal_quote!"

Cách xem nhật ký lỗi trong môi trường của bạn

Để gỡ lỗi ứng dụng của bạn trong trường hợp có bất kỳ lỗi nào đến, chỉ cần làm theo các bước dưới đây để xem nhật ký cho ứng dụng của bạn:

  • Trong bảng điều khiển Beanstalk đàn hồi của bạn, nhấp vào "nhật ký" từ phần môi trường của bạn.
  • Nó sẽ đưa bạn đến một trang khác, nơi bạn sẽ nhận được một thả xuống sau khi nhấp vào "Nhật ký yêu cầu". Chọn "100 dòng cuối cùng" cho các lỗi gần đây nhất hoặc bạn cũng có tùy chọn tải xuống "nhật ký đầy đủ" trong trường hợp bạn đang gỡ lỗi lỗi xảy ra từ lâu.
  • Nhấp vào "Tải xuống" và nó sẽ đưa bạn đến một trang nơi bạn có thể xem 100 dòng nhật ký cuối cùng.

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Hướng dẫn how do i automate twitter in python? - làm cách nào để tự động hóa twitter trong python?

Gói lên

Trong hướng dẫn này, bạn đã trải qua quá trình phát triển và triển khai một bot twitter trong Python.

Bạn cũng đã tìm hiểu về Tweepy, cách đăng ký làm nhà phát triển Twitter để sử dụng API của mình, sử dụng Tweepy để gọi API Twitter và định cấu hình môi trường Beanstalk đàn hồi AWS để triển khai ứng dụng Python của bạn.

Tất cả các mã nguồn đã được sử dụng ở đây đều có sẵn trong kho Github này. Để kiểm tra hoạt động cuối cùng của bot, bạn có thể tìm @Zeal_quote trên Twitter.

Hãy kiểm tra tài liệu API Tweepy hoàn chỉnh để tạo ra các bot phức tạp hơn có ý nghĩa đối với trường hợp sử dụng của bạn.

Twitter có cho phép tự động hóa không?

A. Bạn chỉ có thể thực hiện các hành động tự động thông qua tài khoản người dùng Twitter khác nếu bạn: Mô tả rõ ràng cho người dùng các loại hành động tự động sẽ xảy ra;nhận được sự đồng ý rõ ràng từ người dùng để thực hiện các hành động tự động đó;và.

Twitter có API Python không?

Giới thiệu.Thư viện này cung cấp giao diện Python thuần túy cho API Twitter.Nó hoạt động với Python 2.7+ và Python 3. Twitter cung cấp một dịch vụ cho phép mọi người kết nối qua web, IM và SMS.This library provides a pure Python interface for the Twitter API. It works with Python 2.7+ and Python 3. Twitter provides a service that allows people to connect via the web, IM, and SMS.