Lưu ý quan trọng: Kể từ giữa năm 2018, quá trình nhận mã thông báo API twitter trở nên quan liêu hơn rất nhiều. Tôi đã mất hơn một tuần làm việc để được cung cấp một bộ mã thông báo API và đây là dự án nguồn mở dành cho các bạn và các cô gái với hơn 1,2 triệu lượt cài đặt trên Packagist và 1,6 nghìn sao trên Github, về mặt lý thuyết nên được ưu tiên cao hơn .
Nếu bạn được giao nhiệm vụ làm việc với API twitter cho công việc của mình, bạn phải tính đến thời gian chờ cực kỳ lâu này. Cũng xem xét các đại lộ truyền thông xã hội khác như Facebook hoặc Instagram và cung cấp các tùy chọn này, vì quá trình lấy mã thông báo của họ là ngay lập tức.
Vậy bạn có muốn sử dụng API Twitter v1.1 không?
Lưu ý: các tệp cho những thứ này có trên GitHub .
Phiên bản 1.0 sẽ sớm bị phản đối và các yêu cầu trái phép sẽ không được phép. Vì vậy, đây là một bài đăng để giúp bạn làm điều đó, cùng với một lớp PHP để làm cho cuộc sống của bạn dễ dàng hơn.
1. Tạo tài khoản nhà phát triển: Thiết lập tài khoản nhà phát triển trên Twitter
Bạn cần truy cập trang web chính thức của nhà phát triển Twitter và đăng ký tài khoản nhà phát triển. Đây là bước miễn phí và cần thiết để thực hiện các yêu cầu cho API v1.1.
2. Tạo một ứng dụng: Tạo một ứng dụng trên trang web của nhà phát triển Twitter
Gì? Bạn nghĩ rằng bạn có thể thực hiện các yêu cầu không được xác thực? Không phải với API v1.1 của Twitter. Bạn cần truy cập http://dev.twitter.com/apps và nhấp vào nút "Tạo ứng dụng".
Trên trang này, điền bất cứ chi tiết nào bạn muốn. Đối với tôi, điều đó không thành vấn đề, vì tôi chỉ muốn thực hiện một loạt các yêu cầu chặn để loại bỏ những người theo dõi spam. Vấn đề là bạn sẽ có cho mình một bộ các khóa duy nhất để sử dụng cho ứng dụng của mình.
Vì vậy, quan điểm của việc tạo một ứng dụng là cung cấp cho bạn (và Twitter) một bộ khóa. Đó là:
- Khóa tiêu dùng
- Bí mật người tiêu dùng
- Mã thông báo truy cập
- Bí mật mã thông báo truy cập
Có một ít thông tin ở đây về những token này để làm gì.
3. Tạo mã thông báo truy cập : Bạn sẽ cần những mã này để thực hiện các yêu cầu thành công
OAuth yêu cầu một vài mã thông báo. Vì vậy, bạn cần phải có chúng được tạo ra cho bạn.
Nhấp vào "tạo mã thông báo truy cập của tôi" ở dưới cùng. Sau đó, khi bạn cuộn xuống dưới một lần nữa, bạn sẽ có một số khóa mới được tạo. Bạn cần lấy bốn khóa được gắn nhãn trước đó từ trang này cho các lệnh gọi API của mình, vì vậy hãy ghi chú chúng ở đâu đó.
4. Thay đổi cấp độ truy cập : Bạn không muốn chỉ đọc, phải không?
Nếu bạn muốn sử dụng API này một cách hợp lý, bạn sẽ cần thay đổi cài đặt của mình thành Đọc & Viết nếu bạn đang làm bất cứ điều gì khác ngoài truy xuất dữ liệu tiêu chuẩn bằng các yêu cầu GET .
Chọn tab "Cài đặt" gần đầu trang.
Cấp cho ứng dụng của bạn quyền truy cập đọc / ghi và nhấn "Cập nhật" ở phía dưới.
Bạn có thể đọc thêm về mô hình cấp phép ứng dụng mà Twitter sử dụng ở đây.
5. Viết mã để truy cập API : Tôi đã thực hiện hầu hết mã này cho bạn
Tôi đã kết hợp mã ở trên, với một số sửa đổi và thay đổi, thành một lớp PHP để thực hiện các yêu cầu bạn yêu cầu thực sự đơn giản.
Điều này sử dụng OAuth và API Twitter v1.1 và lớp tôi đã tạo mà bạn có thể tìm thấy bên dưới.
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
Hãy chắc chắn rằng bạn đặt các khóa bạn nhận được từ ứng dụng của bạn ở trên trong không gian tương ứng của chúng.
Tiếp theo, bạn cần chọn một URL mà bạn muốn đưa ra yêu cầu. Twitter có tài liệu API của họ để giúp bạn chọn URL nào và loại yêu cầu (POST hoặc GET).
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/blocks/create.json';
$requestMethod = 'POST';
Trong tài liệu, mỗi URL nêu những gì bạn có thể chuyển cho nó. Nếu chúng tôi đang sử dụng URL "khối" như ở trên, tôi có thể truyền các tham số POST sau:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
Bây giờ bạn đã thiết lập những gì bạn muốn làm với API, đã đến lúc đưa ra yêu cầu thực tế.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
Và cho một bài đăng yêu cầu , đó là nó!
Đối với một yêu cầu NHẬN , nó hơi khác một chút. Đây là một ví dụ:
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/followers/ids.json';
$getfield = '?username=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Ví dụ mã cuối cùng : Đối với một yêu cầu GET đơn giản cho danh sách những người theo dõi tôi.
$url = 'https://api.twitter.com/1.1/followers/list.json';
$getfield = '?username=J7mbo&skip_status=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Tôi đã đặt các tệp này trên GitHub với khoản tín dụng cho @ Thiếuovic10 và @rivers! Tôi hy vọng ai đó thấy nó hữu ích; Tôi biết tôi đã làm (tôi đã sử dụng nó để chặn hàng loạt trong một vòng lặp).
Ngoài ra, đối với những người trên Windows đang gặp vấn đề với chứng chỉ SSL, hãy xem bài đăng này . Thư viện này sử dụng cURL dưới mui xe, vì vậy bạn cần chắc chắn rằng bạn có thể cài đặt các cURL của bạn. Google cũng là bạn của bạn.