+3

Tự động đăng status lên Twitter

Hôm nay mình xin giới thiệu cách tự động đăng bài lên twiter sử dụng php:

Tạo token twiter

  • đầu tiền bạn vào https://apps.twitter.com/ nhập mốt số thông tin cần thiết mà twiter yêu cầu để tạo một ứng dụng, khi bạn tạo xong nó sẽ chỗ ta một số token như sau:

Chú ý những chỗ mình bôi vàng nhé

- Consumer Key (API Key):
- Consumer Secret (API Secret)
- Access Token
- Access Token Secret

Chú ý khi tạo xong chưa có access token và access token secret thì bạn cần kéo xuống dưới để gennerate token này ra.

Giữ 4 cái key này lại chúng ta sẽ phải dùng ở phần sau:

Cài đặt thư viện về:

Code Thôi nào

Setting key

Từ 4 cái key lấy được ở bước một chúng ta cần setup như sau:

require_once('TwitterAPIExchange.php'); // dùng use nếu sử dụng class
$settings = array(
    'oauth_access_token' => "oauth_access_token",
    'oauth_access_token_secret' => "oauth_access_token_secret",
    'consumer_key' => "consumer_key",
    'consumer_secret' => "consumer_secret"
);

Upload image

  • ảnh được upload lên theo dạng base64, khi upload lên api sẽ trả về cho chúng ta một cái key (id của ảnh) có thể được sử dụng sau này:
$requestMethod = 'POST';
$url = 'https://upload.twitter.com/1.1/media/upload.json';
$file = file_get_contents(__DIR__ . '/twitter_image3.jpg');
$media_data = base64_encode($file);
$params = array(
    'media_data' => $media_data,
    'possibly_sensitive' => false,
);
$twitter = new TwitterAPIExchange($settings);
echo $twitter->request($url, $requestMethod, $params);

Up status có ảnh

$params = array(
    'status' => "This is test twiter auto",
    'media_ids' => 978072673317081088,
    'possibly_sensitive' => false,
);
$url = 'https://api.twitter.com/1.1/statuses/update.json';
$requestMethod, = 'POST'
 $twitter = new TwitterAPIExchange($settings);
 echo $twitter->request($url, $requestMethod, $params);

Chú ý mỗi status nên cách nhau khoảng 5 phút để tránh spam

Get timeline status

  1. Của User khác
$url    = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$method = 'GET';
$params = '?user_id=3232926711';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->request($url, $requestMethod, $params);
  1. Của chính mình
$url    = 'https://api.twitter.com/1.1/statuses/retweets_of_me.json';
$method = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->request($url, $requestMethod, $params);

Nếu không call được cần check lại permission bạn đã cấp đủ chưa trong phần một nhé

Trên đây là một vài api hay dùng, ngoài ra api của twiter còn rất nhiều như update, delete status/ảnh Các bạn có thể tham khảo thêm ở đây: https://developer.twitter.com/en/docs/api-reference-index


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí