Twurl ก็เหมือนกับ curl แต่ออกแบบมาโดยเฉพาะสำหรับ Twitter API รู้วิธีให้โทเค็นการเข้าถึงแก่แอปพลิเคชันไคลเอนต์สำหรับผู้ใช้ที่ระบุ จากนั้นลงนามคำขอทั้งหมดด้วยโทเค็นการเข้าถึงนั้น
นอกจากนี้ยังมอบความสะดวกในการพัฒนาและแก้ไขจุดบกพร่องอื่นๆ เช่น การกำหนดนามแฝงสำหรับคำขอทั่วไป ตลอดจนการสนับสนุนโทเค็นการเข้าถึงหลายรายการ เพื่อสลับระหว่างแอปพลิเคชันไคลเอ็นต์และบัญชี Twitter ต่างๆ ได้อย่างง่ายดาย
สามารถติดตั้ง Twurl ได้โดยใช้ RubyGems:
gem install twurl
หากคุณยังไม่ได้ดำเนินการ สิ่งแรกที่ต้องทำคือสมัครบัญชีนักพัฒนาซอฟต์แวร์เพื่อเข้าถึง Twitter API:
https://developer.twitter.com/en/apply-for-access
หลังจากที่คุณมีสิทธิ์เข้าถึงแล้ว คุณสามารถสร้างแอป Twitter และสร้างรหัสผู้บริโภคและข้อมูลลับได้
เมื่อคุณมีรหัสผู้บริโภคและความลับ คุณจะอนุญาตให้บัญชี Twitter ของคุณส่งคำขอ API ด้วยรหัสผู้บริโภคและความลับนั้น
twurl authorize --consumer-key key
--consumer-secret secret
นี่จะส่งคืน URL ที่คุณควรเปิดในเบราว์เซอร์ของคุณ ตรวจสอบสิทธิ์ Twitter จากนั้นป้อน PIN ที่ส่งคืนกลับเข้าไปในเทอร์มินัล สมมติว่าทุกอย่างทำงานได้ดี คุณจะได้รับอนุญาตให้ส่งคำขอด้วย API Twurl จะบอกคุณมากเท่า
คำขอที่ง่ายที่สุดเพียงต้องการให้คุณระบุเส้นทางที่คุณต้องการร้องขอ
twurl /1.1/statuses/home_timeline.json
เช่นเดียวกับ curl คำขอ GET จะดำเนินการตามค่าเริ่มต้น
คุณสามารถดำเนินการร้องขอ POST โดยปริยายได้โดยการส่งตัวเลือก -d ซึ่งระบุพารามิเตอร์ POST
twurl -d ' status=Testing twurl ' /1.1/statuses/update.json
คุณสามารถระบุวิธีการร้องขอที่จะดำเนินการอย่างชัดเจนด้วยตัวเลือก -X (หรือ --request-method)
twurl -X POST /1.1/statuses/destroy/1234567890.json
คุณสามารถสร้างโทเค็นผู้ถือได้โดยใช้อ็อพชัน --bearer
ร่วมกับคำสั่งย่อย authorize
twurl authorize --bearer --consumer-key key
--consumer-secret secret
จากนั้นคุณสามารถส่งคำขอโดยใช้โทเค็นผู้ถือที่สร้างขึ้นโดยใช้ตัวเลือกคำขอ --bearer
twurl --bearer ' /1.1/search/tweets.json?q=hello '
หากต้องการแสดงรายการโทเค็นผู้ถือที่สร้างขึ้น คุณสามารถใช้คำสั่งย่อย bearer_tokens
twurl bearer_tokens
การดำเนินการนี้จะพิมพ์คู่ของ Consumer_key และโทเค็นผู้ถือที่เกี่ยวข้อง โปรดทราบว่าโทเค็นจะถูกละเว้นจากเอาต์พุตนี้
คุณสามารถเข้าถึงโฮสต์ต่างๆ สำหรับ Twitter API อื่นๆ ได้โดยใช้แฟล็ก -H
twurl -H " ads-api.twitter.com " " /7/accounts "
หากต้องการอัปโหลดไฟล์ไบนารี คุณสามารถจัดรูปแบบการโทรเป็นการโพสต์แบบฟอร์มได้ ด้านล่างไบนารีคือ "/path/to/media.jpg" และฟิลด์แบบฟอร์มคือ "media":
twurl -H " upload.twitter.com " -X POST " /1.1/media/upload.json " --file " /path/to/media.jpg " --file-field " media "
twurl alias h /1.1/statuses/home_timeline.json
จากนั้นคุณสามารถใช้ "h" แทนเส้นทางแบบเต็มได้
twurl h
เส้นทางที่ต้องการตัวเลือกเพิ่มเติม (เช่น พารามิเตอร์คำขอ) สามารถใช้กับนามแฝงได้เช่นเดียวกับเส้นทางที่ชัดเจนแบบเต็ม เช่นเดียวกับที่คุณคาดหวัง
twurl alias tweet /1.1/statuses/update.json
twurl tweet -d " status=Aliases in twurl are convenient "
ครั้งแรกที่คุณอนุญาตให้แอปพลิเคชันไคลเอ็นต์ส่งคำขอในนามของบัญชีของคุณ twurl จะจัดเก็บข้อมูลโทเค็นการเข้าถึงของคุณไว้ในไฟล์ ~/.twurlrc
คำขอครั้งต่อไปจะใช้โปรไฟล์นี้เป็นโปรไฟล์เริ่มต้น คุณสามารถใช้คำสั่งย่อย accounts
เพื่อดูว่าแอปพลิเคชันไคลเอนต์ใดที่ได้รับอนุญาตสำหรับชื่อผู้ใช้ใด:
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA (default)
testiverse
guT9RsJbNQgVe6AwoY9BA
โปรดสังเกตว่าหนึ่งในคีย์ผู้บริโภคเหล่านั้นถูกทำเครื่องหมายว่าเป็นค่าเริ่มต้น หากต้องการเปลี่ยนค่าเริ่มต้น ให้ใช้คำสั่งย่อย set
โดยส่งเฉพาะชื่อผู้ใช้ หากไม่คลุมเครือ หรือคู่ชื่อผู้ใช้และคีย์ผู้บริโภค หากไม่คลุมเครือ:
twurl set default testiverse
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA
testiverse
guT9RsJbNQgVe6AwoY9BA (default)
twurl set default noradio HQsAGcBm5MQT4n6j7qVJw
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw (default)
hhC7Koy2zRsTZvQh1hVlSA
testiverse
guT9RsJbNQgVe6AwoY9BA
แม้ว่าการเปลี่ยนโปรไฟล์เริ่มต้นจะทำให้คุณสามารถเลือกโทเค็นการเข้าถึง (OAuth1.0a) ที่จะใช้ แต่โทเค็นผู้ถือจะไม่เชื่อมโยงกับโปรไฟล์ผู้ใช้ใดๆ เนื่องจากการตรวจสอบสิทธิ์เฉพาะแอปพลิเคชันไม่ต้องการบริบทผู้ใช้ นั่นคือ คุณสามารถส่งคำขอเฉพาะแอปพลิเคชันได้โดยไม่คำนึงถึงโปรไฟล์เริ่มต้นของคุณ หากคุณระบุตัวเลือก -c
( --consumer-key
) เมื่อคุณสร้างโทเค็นผู้ถือด้วยรหัสผู้บริโภคนี้ ตามค่าเริ่มต้น twurl จะอ่านรหัสผู้บริโภคของโปรไฟล์ปัจจุบันและโทเค็นผู้ถือที่เกี่ยวข้องจากไฟล์ ~/.twurlrc
มาร์เซล โมลินา / @noradio
เอริค ไมเคิลส์-โอเบอร์ / @sferik
และยังมีอีกมากมาย!