Tu dong dang bai facebook nhieu tai khoan

 Dưới đây là phiên bản mở rộng của plugin, cho phép bạn đăng bài lên nhiều Trang Facebook (mỗi trang với Page ID và Page Access Token riêng). Trong giao diện cài đặt, bạn sẽ nhập danh sách các trang Facebook theo định dạng sau (mỗi dòng một cặp, cách nhau bằng dấu hai chấm):

makefile
PAGE_ID_1:PAGE_ACCESS_TOKEN_1 PAGE_ID_2:PAGE_ACCESS_TOKEN_2 ...

Khi có bài đăng mới, plugin sẽ lặp qua từng dòng và gọi API đăng bài lên từng trang.

Hãy tạo file auto-facebook-poster-multi.php trong thư mục wp-content/plugins và sao chép mã dưới đây:


php
<?php /* Plugin Name: Auto Facebook Poster Multi-Page Description: Tự động đăng bài từ WordPress lên nhiều Trang Facebook với nội dung tùy chỉnh (tiêu đề, trích dẫn, ảnh đại diện). Version: 1.2 Author: Tên của bạn License: GPL2 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Auto_Facebook_Poster_Multi { public function __construct() { // Thêm trang cài đặt trong Admin add_action( 'admin_menu', array( $this, 'afpmp_add_admin_menu' ) ); add_action( 'admin_init', array( $this, 'afpmp_settings_init' ) ); // Hook đăng bài mới add_action( 'publish_post', array( $this, 'afpmp_publish_to_facebook' ), 10, 2 ); } /*---------------------------------------- ADMIN SETTINGS ----------------------------------------*/ public function afpmp_add_admin_menu() { add_options_page( 'Auto Facebook Poster Multi Settings', 'Auto FB Poster Multi', 'manage_options', 'auto_facebook_poster_multi', array( $this, 'afpmp_options_page' ) ); } public function afpmp_settings_init() { register_setting( 'afpmp_pluginPage', 'afpmp_settings' ); add_settings_section( 'afpmp_pluginPage_section', __('Cài đặt Facebook', 'auto-facebook-poster-multi'), array( $this, 'afpmp_settings_section_callback' ), 'afpmp_pluginPage' ); add_settings_field( 'afpmp_app_id', __('Facebook App ID', 'auto-facebook-poster-multi'), array( $this, 'afpmp_app_id_render' ), 'afpmp_pluginPage', 'afpmp_pluginPage_section' ); add_settings_field( 'afpmp_app_secret', __('Facebook App Secret', 'auto-facebook-poster-multi'), array( $this, 'afpmp_app_secret_render' ), 'afpmp_pluginPage', 'afpmp_pluginPage_section' ); add_settings_field( 'afpmp_pages', __('Danh sách Trang Facebook', 'auto-facebook-poster-multi'), array( $this, 'afpmp_pages_render' ), 'afpmp_pluginPage', 'afpmp_pluginPage_section' ); } public function afpmp_app_id_render() { $options = get_option( 'afpmp_settings' ); ?> <input type='text' name='afpmp_settings[afpmp_app_id]' value='<?php echo isset( $options['afpmp_app_id'] ) ? esc_attr( $options['afpmp_app_id'] ) : ''; ?>' size="50"> <?php } public function afpmp_app_secret_render() { $options = get_option( 'afpmp_settings' ); ?> <input type='text' name='afpmp_settings[afpmp_app_secret]' value='<?php echo isset( $options['afpmp_app_secret'] ) ? esc_attr( $options['afpmp_app_secret'] ) : ''; ?>' size="50"> <?php } // Đây là trường để nhập danh sách các trang Facebook, mỗi dòng định dạng: PAGE_ID:PAGE_ACCESS_TOKEN public function afpmp_pages_render() { $options = get_option( 'afpmp_settings' ); ?> <textarea name='afpmp_settings[afpmp_pages]' rows='8' cols='80' placeholder="VD: 1234567890:EAABsbCS1iHgBAK... 0987654321:EAAXxxxxxxxxxxxx"><?php echo isset( $options['afpmp_pages'] ) ? esc_textarea( $options['afpmp_pages'] ) : ''; ?></textarea> <p class="description">Nhp mi trang trên mt dòng vi định dng: <code>PAGE_ID:PAGE_ACCESS_TOKEN</code></p> <?php } public function afpmp_settings_section_callback() { echo __('Nhập thông tin ứng dụng Facebook của bạn và danh sách các Trang Facebook. Tạo ứng dụng tại <a href="https://developers.facebook.com/" target="_blank">Facebook Developers</a> và lấy các thông số cần thiết.', 'auto-facebook-poster-multi'); } public function afpmp_options_page() { ?> <div class="wrap"> <h1>Auto Facebook Poster Multi Settings</h1> <form action='options.php' method='post'> <?php settings_fields( 'afpmp_pluginPage' ); do_settings_sections( 'afpmp_pluginPage' ); submit_button(); ?> </form> <p><strong>Lưu ý:</strong> Đảm bong dng Facebook ca bn đã được bt chế độ công khai (Live) và có quyn qun lý các trang để plugin đăng bài thành công.</p> </div> <?php } /*---------------------------------------- POSTING TO FACEBOOK MULTI-PAGE WITH CUSTOM CONTENT ----------------------------------------*/ public function afpmp_publish_to_facebook( $post_ID, $post ) { // Chỉ xử lý nếu bài đăng ở trạng thái publish if ( $post->post_status !== 'publish' ) { return; } $options = get_option( 'afpmp_settings' ); if ( empty( $options['afpmp_pages'] ) ) { // Nếu chưa cấu hình danh sách trang, không thực hiện đăng bài return; } // Lấy thông tin bài đăng $post_title = $post->post_title; $post_url = get_permalink( $post_ID ); // Lấy trích dẫn (excerpt), nếu không có thì tự tạo từ nội dung bài viết. $post_excerpt = $post->post_excerpt; if ( empty( $post_excerpt ) ) { $post_excerpt = wp_trim_words( $post->post_content, 40, '...' ); } // Lấy URL ảnh đại diện (nếu có) $featured_image = get_the_post_thumbnail_url( $post_ID, 'full' ); // Tùy chỉnh nội dung bài đăng $message = $post_title . "\n\n" . $post_excerpt . "\n\nXem thêm: " . $post_url; // Lấy danh sách các trang từ cài đặt, mỗi dòng có định dạng PAGE_ID:ACCESS_TOKEN $pages_raw = explode( "\n", $options['afpmp_pages'] ); foreach ( $pages_raw as $line ) { $line = trim( $line ); if ( empty( $line ) ) { continue; } // Tách theo dấu hai chấm $parts = explode( ':', $line, 2 ); if ( count( $parts ) < 2 ) { continue; } $page_id = trim( $parts[0] ); $access_token = trim( $parts[1] ); if ( empty( $page_id ) || empty( $access_token ) ) { continue; } // URL API của Facebook cho từng trang $fb_api_url = "https://graph.facebook.com/{$page_id}/feed"; // Chuẩn bị dữ liệu gửi tới API $body = array( 'message' => $message, 'link' => $post_url, 'access_token' => $access_token, ); if ( $featured_image ) { $body['picture'] = $featured_image; } $args = array( 'body' => $body, 'timeout' => 15, 'redirection' => 5, 'blocking' => true, 'headers' => array(), 'cookies' => array(), ); // Gửi yêu cầu POST đến Facebook Graph API $response = wp_remote_post( $fb_api_url, $args ); if ( is_wp_error( $response ) ) { error_log( '[Auto FB Poster Multi] Error posting to page ' . $page_id . ': ' . $response->get_error_message() ); } else { $response_body = wp_remote_retrieve_body( $response ); error_log( '[Auto FB Poster Multi] Response for page ' . $page_id . ': ' . $response_body ); } } } } new Auto_Facebook_Poster_Multi();

Hướng dẫn sử dụng

  1. Tạo file plugin:

    • Tạo file auto-facebook-poster-multi.php và sao chép toàn bộ code trên vào file đó.
  2. Upload và kích hoạt:

    • Đưa file vào thư mục wp-content/plugins của website.
    • Vào Admin > Plugins và kích hoạt “Auto Facebook Poster Multi-Page”.
  3. Cấu hình plugin:

    • Vào Cài đặt > Auto FB Poster Multi.
    • Nhập Facebook App ID và App Secret (lấy từ Facebook Developers).
    • Trong trường "Danh sách Trang Facebook", nhập danh sách các trang của bạn. Mỗi dòng có định dạng:
      makefile
      PAGE_ID_1:PAGE_ACCESS_TOKEN_1 PAGE_ID_2:PAGE_ACCESS_TOKEN_2
      Bạn có thể lấy Page ID từ công cụ như Find My FB ID.
  4. Kiểm tra:

    • Khi bạn đăng bài mới trên WordPress, plugin sẽ tự động gửi bài đăng với nội dung tùy chỉnh (tiêu đề, trích dẫn, ảnh đại diện nếu có và link bài viết) đến tất cả các trang đã cấu hình.
    • Kiểm tra log (trong file debug.log nếu DEBUG_MODE bật) để xem phản hồi từ Facebook API.

Lưu ý

  • Đây là ví dụ mẫu cơ bản. Bạn nên bổ sung thêm kiểm tra lỗi, làm mới token khi cần, xử lý bảo mật và tùy chỉnh thêm nội dung nếu cần thiết.
  • Đảm bảo ứng dụng Facebook của bạn có các quyền cần thiết như pages_manage_posts hoặc pages_read_engagement để có thể đăng bài thành công.

Hy vọng phiên bản này sẽ đáp ứng yêu cầu của bạn về việc đăng bài tự động lên nhiều Trang Facebook. Nếu cần hỗ trợ thêm hoặc mở rộng tính năng, hãy tham khảo tài liệu Facebook Graph APIWordPress Plugin Handbook.

Comments

Popular posts from this blog

The World at a Crossroads: Donald Trump’s Presidency and Its Global Impact

Cho tam giác ABC vuông tại A có AB < AC. Vẽ AH vuông góc với BC ( H thuộc BC), D là điểm trên cạnh AC sao cho AD=AB. Vẽ DE vuông góc với BC( E thuộc BC). Chứng minh rằng : HA=HE.

Cho tam giác ABC vuông ở B, kéo dài AC về phía C một đoạn CD=AB=1, góc CBD=30 độ. Tính AC.