首頁 > 後端開發 > Python教學 > 建立 Python 機器人來自動化社群媒體參與

建立 Python 機器人來自動化社群媒體參與

Mary-Kate Olsen
發布: 2024-10-22 20:05:59
原創
782 人瀏覽過

Build a Python Bot to Automate Social Media Engagement

作者:Trix Cyrus

Waymap滲透測試工具:點這裡
TrixSec Github:點這裡

完整的多元社群媒體機器人腳本
該腳本將演示如何創建用於在 Twitter、Facebook 和 Instagram 上自動參與的基本結構。對於 Facebook 和 Instagram,您需要使用 requests 函式庫來呼叫它們的 API。

注意:Facebook 和 Instagram 對於自動化有嚴格的規則,您可能需要透過他們的批准流程來執行某些操作。

import tweepy
import requests
import schedule
import time

# Twitter API credentials
twitter_api_key = 'YOUR_TWITTER_API_KEY'
twitter_api_secret_key = 'YOUR_TWITTER_API_SECRET_KEY'
twitter_access_token = 'YOUR_TWITTER_ACCESS_TOKEN'
twitter_access_token_secret = 'YOUR_TWITTER_ACCESS_TOKEN_SECRET'

# Facebook API credentials
facebook_access_token = 'YOUR_FACEBOOK_ACCESS_TOKEN'
facebook_page_id = 'YOUR_FACEBOOK_PAGE_ID'

# Instagram API credentials (using Graph API)
instagram_access_token = 'YOUR_INSTAGRAM_ACCESS_TOKEN'
instagram_business_account_id = 'YOUR_INSTAGRAM_BUSINESS_ACCOUNT_ID'

# Authenticate to Twitter
twitter_auth = tweepy.OAuth1UserHandler(twitter_api_key, twitter_api_secret_key, twitter_access_token, twitter_access_token_secret)
twitter_api = tweepy.API(twitter_auth)

# Function to post a tweet
def post_tweet(status):
    try:
        twitter_api.update_status(status)
        print("Tweet posted successfully!")
    except Exception as e:
        print(f"An error occurred while posting tweet: {e}")

# Function to like tweets based on a keyword
def like_tweets(keyword, count=5):
    try:
        tweets = twitter_api.search(q=keyword, count=count)
        for tweet in tweets:
            twitter_api.create_favorite(tweet.id)
            print(f"Liked tweet by @{tweet.user.screen_name}: {tweet.text}")
    except Exception as e:
        print(f"An error occurred while liking tweets: {e}")

# Function to post a Facebook update
def post_facebook_update(message):
    try:
        url = f"https://graph.facebook.com/{facebook_page_id}/feed"
        payload = {
            'message': message,
            'access_token': facebook_access_token
        }
        response = requests.post(url, data=payload)
        if response.status_code == 200:
            print("Facebook post created successfully!")
        else:
            print(f"Failed to post on Facebook: {response.text}")
    except Exception as e:
        print(f"An error occurred while posting on Facebook: {e}")

# Function to post an Instagram update (a photo in this example)
def post_instagram_photo(image_url, caption):
    try:
        url = f"https://graph.facebook.com/v12.0/{instagram_business_account_id}/media"
        payload = {
            'image_url': image_url,
            'caption': caption,
            'access_token': instagram_access_token
        }
        response = requests.post(url, data=payload)
        media_id = response.json().get('id')

        # Publish the media
        if media_id:
            publish_url = f"https://graph.facebook.com/v12.0/{instagram_business_account_id}/media_publish"
            publish_payload = {
                'creation_id': media_id,
                'access_token': instagram_access_token
            }
            publish_response = requests.post(publish_url, data=publish_payload)
            if publish_response.status_code == 200:
                print("Instagram post created successfully!")
            else:
                print(f"Failed to publish Instagram post: {publish_response.text}")
        else:
            print(f"Failed to create Instagram media: {response.text}")
    except Exception as e:
        print(f"An error occurred while posting on Instagram: {e}")

# Function to perform all actions
def run_bot():
    # Customize your status and keywords
    post_tweet("Automated tweet from my Python bot!")
    like_tweets("Python programming", 5)
    post_facebook_update("Automated update on Facebook!")
    post_instagram_photo("YOUR_IMAGE_URL", "Automated Instagram post!")

# Schedule the bot to run every hour
schedule.every().hour.do(run_bot)

print("Multi-social media bot is running...")

# Keep the script running
while True:
    schedule.run_pending()
    time.sleep(1)
登入後複製

如何使用此腳本

安裝所需的函式庫:確保您已安裝 tweepy 和 requests。您可以使用 pip 安裝它們:

pip install tweepy requests schedule
登入後複製

設定您的 API 憑證:將佔位符替換為您的 Twitter、Facebook 和 Instagram 的實際 API 憑證。

自訂您的操作:您可以更改 post_tweet 和 post_facebook_update 中的文本,並將 post_instagram_photo 中的 YOUR_IMAGE_URL 替換為您要發布的有效圖像 URL。

執行腳本:透過執行以下命令來執行腳本:

python your_script_name.py
登入後複製

監控您的機器人:機器人將無限期運行,每小時執行指定的操作。您可以透過中斷程序來停止它(例如,Ctrl C)。

重要注意事項
API 限制:每個社群媒體平台都有自己的速率限制和限制,因此請務必查看每個 API 的文件。

道德使用:注意您的機器人如何與使用者交互,以避免發送垃圾郵件或違反平台準則。

測試:在廣泛部署之前在受控環境中測試您的機器人。

~TrixSec

以上是建立 Python 機器人來自動化社群媒體參與的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板