หมายเหตุสำคัญ:ตั้งแต่กลางปี 2018 กระบวนการรับโทเค็น API ของ twitter กลายเป็นระบบราชการมากขึ้น ฉันใช้เวลากว่าหนึ่งสัปดาห์ในการทำงานเพื่อรับชุดโทเค็น API และนี่เป็นโครงการโอเพ่นซอร์สสำหรับคุณและเด็กผู้หญิงที่มีการติดตั้งมากกว่า1.2 ล้านครั้งใน Packagist และดาว 1.6k บน Github ซึ่งในทางทฤษฎีควรมีลำดับความสำคัญสูงกว่า .
หากคุณได้รับมอบหมายให้ทำงานกับ twitter API สำหรับงานของคุณคุณต้องคำนึงถึงเวลารอคอยที่นานมากนี้ นอกจากนี้ให้พิจารณาลู่ทางโซเชียลมีเดียอื่น ๆ เช่น Facebook หรือ Instagram และให้ตัวเลือกเหล่านี้เนื่องจากกระบวนการเรียกโทเค็นของพวกเขานั้นเป็นสิ่งที่เกิดขึ้นทันที
คุณต้องการใช้ Twitter v1.1 API ไหม
หมายเหตุ: ไฟล์สำหรับเหล่านี้อยู่บน GitHub
เวอร์ชัน 1.0 จะถูกยกเลิกในไม่ช้าและคำขอที่ไม่ได้รับอนุญาตจะไม่ได้รับอนุญาต ดังนั้นนี่คือโพสต์ที่จะช่วยคุณทำเช่นนั้นพร้อมกับคลาส PHP เพื่อทำให้ชีวิตของคุณง่ายขึ้น
1. สร้างบัญชีนักพัฒนาซอฟต์แวร์:ตั้งค่าบัญชีนักพัฒนาซอฟต์แวร์บน Twitter
คุณต้องไปที่เว็บไซต์นักพัฒนา Twitter อย่างเป็นทางการและลงทะเบียนบัญชีนักพัฒนาซอฟต์แวร์ นี่เป็นขั้นตอนฟรีและจำเป็นสำหรับการร้องขอ v1.1 API
2. สร้างแอปพลิเคชัน:สร้างแอปพลิเคชันบนเว็บไซต์นักพัฒนา Twitter
อะไร? คุณคิดว่าคุณสามารถส่งคำขอที่ไม่ได้รับการรับรองความถูกต้องได้หรือไม่ ไม่ใช้ API v1.1 ของ Twitter คุณต้องเยี่ยมชมhttp://dev.twitter.com/appsและคลิกปุ่ม "สร้างแอปพลิเคชัน"
ในหน้านี้กรอกรายละเอียดที่คุณต้องการ สำหรับฉันมันไม่สำคัญเพราะฉันแค่ต้องการโหลดคำขอบล็อกเพื่อกำจัดผู้ติดตามสแปม ประเด็นก็คือคุณจะได้รับชุดของคีย์ที่ไม่ซ้ำกันเพื่อใช้สำหรับแอปพลิเคชันของคุณ
จุดประสงค์ของการสร้างแอปพลิเคชันคือการมอบชุดคีย์ (และ Twitter) ให้กับตัวคุณเอง เหล่านี้คือ:
- รหัสผู้ใช้
- ความลับของผู้บริโภค
- โทเค็นการเข้าถึง
- การเข้าถึงโทเค็นลับ
มีนิด ๆ หน่อย ๆ ของข้อมูลที่เป็นที่นี่ในสิ่งเหล่านี้สำหรับราชสกุล
3. สร้างโทเค็นการเข้าถึง : คุณจะต้องใช้สิ่งเหล่านี้ในการสร้างคำขอที่ประสบความสำเร็จ
OAuthขอโทเค็นบางอย่าง ดังนั้นคุณต้องสร้างมันขึ้นมาเพื่อคุณ
คลิก "สร้างโทเค็นการเข้าถึงของฉัน" ที่ด้านล่าง จากนั้นเมื่อคุณเลื่อนไปที่ด้านล่างอีกครั้งคุณจะมีคีย์ที่สร้างขึ้นใหม่ คุณต้องคว้ากุญแจที่มีป้ายกำกับสี่ปุ่มก่อนหน้านี้จากหน้านี้สำหรับการโทร API ของคุณดังนั้นจดบันทึกไว้ที่ไหนสักแห่ง
4. เปลี่ยนระดับการเข้าถึง : คุณไม่ต้องการอ่านอย่างเดียวใช่ไหม
หากคุณต้องการใช้ API นี้อย่างมีประสิทธิภาพคุณจะต้องเปลี่ยนการตั้งค่าเป็นอ่านและเขียนหากคุณทำสิ่งอื่นนอกเหนือจากการดึงข้อมูลมาตรฐานโดยใช้คำขอGET
เลือกแท็บ "การตั้งค่า" ใกล้ด้านบนของหน้า
ให้สิทธิ์การเข้าถึงแบบอ่าน / เขียนของแอปพลิเคชันของคุณและกด "อัปเดต" ที่ด้านล่าง
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับรูปแบบการอนุญาตของแอปพลิเคชันที่ Twitter ใช้ที่นี่
5. เขียนรหัสเพื่อเข้าถึง API : ฉันได้ทำเพื่อคุณแล้ว
ฉันรวมรหัสข้างต้นเข้ากับการดัดแปลงและการเปลี่ยนแปลงบางอย่างในคลาส PHP ดังนั้นมันง่ายมากที่จะทำตามที่คุณต้องการ
สิ่งนี้ใช้OAuthและTwitter v1.1 APIและชั้นที่ฉันสร้างซึ่งคุณสามารถหาได้ด้านล่าง
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"
);
ตรวจสอบให้แน่ใจว่าคุณได้ใส่กุญแจที่คุณได้รับจากแอปพลิเคชันด้านบนลงในช่องว่าง
ต่อไปคุณต้องเลือก URL ที่คุณต้องการให้ส่งคำขอ Twitter มีเอกสาร APIของพวกเขาเพื่อช่วยคุณเลือก URL และประเภทคำขอ (POST หรือ 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';
ในเอกสารประกอบ URL แต่ละรายการระบุสิ่งที่คุณสามารถส่งผ่านได้ หากเราใช้ URL "บล็อก" เช่นเดียวกับข้างบนฉันสามารถส่งพารามิเตอร์ POST ต่อไปนี้:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
เมื่อคุณตั้งค่าสิ่งที่คุณต้องการจะทำกับ API แล้วก็ถึงเวลาที่จะทำตามคำขอจริง
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
และสำหรับคำขอPOST นั่นแหละ !
สำหรับคำขอGETมันแตกต่างกันเล็กน้อย นี่คือตัวอย่าง:
/** 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();
ตัวอย่างรหัสสุดท้าย : สำหรับคำขอ GET แบบง่ายสำหรับรายการผู้ติดตามของฉัน
$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();
ฉันได้วางไฟล์เหล่านี้บน GitHubด้วยเครดิตถึง @ lackovic10 และ @rivers! ฉันหวังว่าบางคนจะพบว่ามีประโยชน์ ฉันรู้ว่าฉันทำ (ฉันใช้สำหรับบล็อกจำนวนมากในวง)
นอกจากนี้สำหรับผู้ที่ใช้ Windows ที่มีปัญหาเกี่ยวกับใบรับรอง SSL ดูที่โพสต์นี้ ห้องสมุดนี้ใช้ cURL ภายใต้ประทุนดังนั้นคุณต้องตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า cURL certs แล้ว Google ยังเป็นเพื่อนของคุณ