Twitter API สำหรับ Laravel 10.x, 11.x (และเวอร์ชันใหม่เมื่อมีการเปิดตัว) รองรับเฟรมเวิร์กอื่น ๆ ผ่าน PHP-DI (หรือเพิ่มการรองรับเฟรมเวิร์กของคุณผ่านการประชาสัมพันธ์ได้ตามสบาย)
คุณต้องสร้างแอปพลิเคชันและสร้างโทเค็นการเข้าถึงของคุณในการจัดการแอปพลิเคชัน
composer require atymic/twitter:^3.0 -W
เพียงตั้งค่าตัวแปรสภาพแวดล้อมด้านล่างใน .env ของคุณ
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_API_VERSION=
เรียก php artisan vendor:publish --provider="AtymicTwitterServiceProviderLaravelServiceProvider"
/config/twitter.php
3.x เป็นเวอร์ชันหลักในปัจจุบัน และไม่สามารถใช้งานร่วมกับ 2.x แบบย้อนหลังได้
ดูคู่มือการย้ายข้อมูลใน UPGRADE.md
2.x ไม่ได้รับการบำรุงรักษาอีกต่อไป เราไม่ยอมรับการแก้ไขข้อบกพร่อง โปรดอัปเกรดเป็น 3.x
คุณสามารถเลือกระหว่างรูปแบบเอาต์พุตที่แตกต่างกันสามแบบ ตามค่าเริ่มต้น การตอบสนอง API v1 จะถูกส่งกลับเป็นออบเจ็กต์ ในขณะที่การตอบสนอง API v2 จะถูกส่งกลับเป็น JSON หากต้องการเปลี่ยนแปลง ให้ใช้ตัวเลือก response_format ในพารามิเตอร์ที่คุณส่งไปยังวิธีใดก็ได้
response_format : object|json|array (v1 default:object) (v2 default:json)
หากต้องการตั้งค่าเวอร์ชัน twitter API เริ่มต้นเป็น v2 แทนที่จะเป็น v1.1 เริ่มต้น ให้ตั้งค่า TWITTER_API_VERSION เป็น 2 ใน . .env ของคุณ
หากคุณได้ตั้งค่า v1.1 api เป็นค่าเริ่มต้น คุณสามารถใช้ Twitter::forApiV2() เพื่อรับอินสแตนซ์ของไคลเอ็นต์ v2 ได้ เช่นเดียวกับการรับอินสแตนซ์ v1 จากไคลเอนต์ v2 โดยใช้ Twitter::forApiV1()
การเรียก Twitter::forApiV1() บนอินสแตนซ์ไคลเอนต์ v1 หรือ v2 นั้นปลอดภัย
getSettings() - คืนการตั้งค่า (รวมถึงข้อมูลแนวโน้มปัจจุบัน ภูมิศาสตร์ และเวลาพักเครื่อง) สำหรับผู้ใช้ที่ตรวจสอบสิทธิ์getCredentials()postSettings() - อัปเดตการตั้งค่าการตรวจสอบสิทธิ์ของผู้ใช้postSettingsDevice() - ตั้งค่าอุปกรณ์ที่ Twitter จะส่งการอัปเดตให้กับผู้ใช้ที่ตรวจสอบสิทธิ์ การส่งไม่มีเนื่องจากพารามิเตอร์อุปกรณ์จะปิดใช้การอัปเดต SMSpostProfile() - ตั้งค่าบางอย่างที่ผู้ใช้สามารถตั้งค่าได้ภายใต้แท็บ "บัญชี" ของหน้าการตั้งค่า เฉพาะพารามิเตอร์ที่ระบุเท่านั้นที่จะได้รับการอัปเดตpostBackground() - อัปเดตรูปภาพพื้นหลังโปรไฟล์ของผู้ใช้ที่ตรวจสอบสิทธิ์ วิธีนี้ยังสามารถใช้เพื่อเปิดหรือปิดใช้งานภาพพื้นหลังโปรไฟล์ได้postProfileImage() - อัปเดตภาพโปรไฟล์ของผู้ใช้ที่ตรวจสอบสิทธิ์ โปรดทราบว่าวิธีนี้ต้องการข้อมูลดิบที่มีหลายส่วน ไม่ใช่ URL ไปยังรูปภาพdestroyUserBanner() - ลบแบนเนอร์โปรไฟล์ที่อัพโหลดสำหรับผู้ใช้ที่ตรวจสอบสิทธิ์ ส่งคืน HTTP 200 เมื่อสำเร็จpostUserBanner() - อัปโหลดแบนเนอร์โปรไฟล์ในนามของผู้ใช้ที่ตรวจสอบสิทธิ์ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ให้อัปโหลดโหนด profile_banner_url ในออบเจ็กต์ Users setWebhook($env, $url) - ลงทะเบียน URL ของ webhook สำหรับกิจกรรมทุกประเภทในสภาพแวดล้อมที่กำหนดcrcHash($crcToken) - ส่งคืนแฮช HMAC SHA-256 จากโทเค็น CRC ที่กำหนดและข้อมูลลับผู้บริโภค คุณจะต้องส่งคืนสิ่งนี้บนเว็บฮุคของคุณ (ข้อมูลเพิ่มเติม)getWebhooks($env) - ส่งคืน URL ของ webhook สำหรับสภาพแวดล้อมที่กำหนด (หรือสภาพแวดล้อมทั้งหมดหากไม่มีให้) และสถานะสำหรับแอปการตรวจสอบสิทธิ์updateWebhooks($env, $webhookId) - ทริกเกอร์การตรวจสอบการตอบสนองต่อความท้าทาย (CRC) สำหรับ webhook สภาพแวดล้อมที่กำหนดสำหรับกิจกรรมทั้งหมด หากตรวจสอบสำเร็จ จะคืนค่าเป็น "จริง" และเปิดใช้งานเว็บฮุคอีกครั้งโดยตั้งค่าสถานะเป็น "ถูกต้อง"destroyWebhook($env, $webhookId) - ลบ webhook ออกจากการกำหนดค่ากิจกรรมทั้งหมดของแอปพลิเคชันที่ให้มา ผลตอบแทนจริงเมื่อประสบความสำเร็จsetSubscriptions($env) - สมัครสมาชิกแอปพลิเคชันที่จัดเตรียมให้กับกิจกรรมทั้งหมดสำหรับสภาพแวดล้อมที่จัดเตรียมไว้สำหรับข้อความทุกประเภท ผลตอบแทนจริงเมื่อประสบความสำเร็จgetSubscriptions($env) - คืนค่าเป็นจริงหากบริบทผู้ใช้ที่ระบุมีการสมัครสมาชิกที่ใช้งานอยู่พร้อมกับแอปพลิเคชันที่ให้มาgetSubscriptionsCount() - ส่งกลับจำนวนการสมัครสมาชิกที่ใช้งานอยู่ในบัญชีของคุณสำหรับกิจกรรมทั้งหมดgetSubscriptionsList($env) - ส่งคืนรายการการสมัครสมาชิกประเภทกิจกรรมทั้งหมดปัจจุบันdestroyUserSubscriptions($env, $userId) - ปิดใช้งานการสมัครสมาชิกสำหรับ id ผู้ใช้ที่ระบุจากสภาพแวดล้อม ผลตอบแทนจริงเมื่อประสบความสำเร็จ getBlocks() - ส่งคืนคอลเลกชันของอ็อบเจ็กต์ผู้ใช้ที่ผู้ใช้ที่ตรวจสอบความถูกต้องกำลังบล็อกgetBlocksIds() - ส่งคืนอาร์เรย์ของรหัสผู้ใช้ที่เป็นตัวเลขที่ผู้ใช้ที่ตรวจสอบความถูกต้องกำลังบล็อกpostBlock() - บล็อกผู้ใช้ที่ระบุไม่ให้ติดตามผู้ใช้ที่ตรวจสอบสิทธิ์ นอกจากนี้ ผู้ใช้ที่ถูกบล็อกจะไม่แสดงในการกล่าวถึงผู้ใช้หรือไทม์ไลน์ที่กำลังตรวจสอบสิทธิ์ (เว้นแต่จะมีการรีทวีตโดยผู้ใช้รายอื่น) หากมีการติดตามหรือเป็นเพื่อนอยู่ ความสัมพันธ์นั้นจะถูกทำลายdestroyBlock() - เลิกบล็อกผู้ใช้ที่ระบุในพารามิเตอร์ ID สำหรับผู้ใช้ที่ตรวจสอบสิทธิ์ ส่งคืนผู้ใช้ที่ไม่ได้ถูกบล็อกในรูปแบบที่ร้องขอเมื่อสำเร็จ หากความสัมพันธ์มีอยู่ก่อนที่จะมีการติดตั้งบล็อก ความสัมพันธ์เหล่านั้นจะไม่ได้รับการกู้คืน getDm() - ส่งคืนเหตุการณ์ข้อความเดียวที่ระบุโดยพารามิเตอร์ idgetDms() - ส่งคืนเหตุการณ์ Direct Message ทั้งหมด (ทั้งที่ส่งและรับ) ภายใน 30 วันที่ผ่านมา เรียงตามลำดับเวลาย้อนกลับdestroyDm() - ทำลายข้อความโดยตรงที่ระบุในพารามิเตอร์ ID ที่ต้องการ ผู้ใช้ที่ตรวจสอบความถูกต้องจะต้องเป็นผู้รับข้อความโดยตรงที่ระบุpostDm() - เผยแพร่เหตุการณ์ message_create ใหม่ซึ่งส่งผลให้มีข้อความตรงที่ส่งไปยังผู้ใช้ที่ระบุจากผู้ใช้ที่ตรวจสอบสิทธิ์ ส่งคืนเหตุการณ์หากสำเร็จ รองรับการเผยแพร่ข้อความโดยตรงพร้อมตัวเลือกการตอบกลับด่วนและไฟล์แนบสื่อ getFavorites() - ส่งคืนทวีตล่าสุด 20 รายการที่ชื่นชอบโดยผู้ใช้ที่ตรวจสอบสิทธิ์หรือระบุdestroyFavorite() - ยกเลิกรายการโปรดสถานะที่ระบุในพารามิเตอร์ ID ในฐานะผู้ใช้ที่ตรวจสอบสิทธิ์ ส่งคืนสถานะที่ไม่เป็นรายการโปรดในรูปแบบที่ร้องขอเมื่อสำเร็จpostFavorite() - รายการโปรดสถานะที่ระบุในพารามิเตอร์ ID ในฐานะผู้ใช้ที่ตรวจสอบสิทธิ์ คืนสถานะรายการโปรดเมื่อสำเร็จ getNoRters() - ส่งคืนคอลเล็กชันของ user_ids ที่ผู้ใช้ที่ได้รับการรับรองความถูกต้องในปัจจุบันไม่ต้องการรับรีทวีตgetFriendsIds() - ส่งคืนคอลเลกชัน ID ผู้ใช้ที่เคอร์เซอร์สำหรับผู้ใช้ทุกคนที่ติดตามผู้ใช้ที่ระบุgetFollowersIds() - ส่งคืนคอลเลกชัน ID ผู้ใช้ที่เคอร์เซอร์สำหรับผู้ใช้ทุกคนที่ติดตามผู้ใช้ที่ระบุgetFriendshipsIn() - ส่งคืนชุดรหัสตัวเลขสำหรับผู้ใช้ทุกคนที่มีคำขอที่รอดำเนินการเพื่อติดตามผู้ใช้ที่ตรวจสอบสิทธิ์getFriendshipsOut() - ส่งคืนชุดรหัสตัวเลขสำหรับผู้ใช้ที่ได้รับการป้องกันทุกรายซึ่งผู้ใช้ที่ตรวจสอบความถูกต้องมีคำขอติดตามที่รอดำเนินการอยู่postFollow() - อนุญาตให้ผู้ใช้ตรวจสอบสิทธิ์ติดตามผู้ใช้ที่ระบุในพารามิเตอร์ IDpostUnfollow() - อนุญาตให้ผู้ใช้ตรวจสอบสิทธิ์เลิกติดตามผู้ใช้ที่ระบุในพารามิเตอร์ IDpostFollowUpdate() - อนุญาตให้เปิดหรือปิดการรีทวีตและการแจ้งเตือนอุปกรณ์จากผู้ใช้ที่ระบุgetFriendships() - ส่งคืนข้อมูลโดยละเอียดเกี่ยวกับความสัมพันธ์ระหว่างผู้ใช้สองคนโดยพลการgetFriends() - ส่งคืนคอลเลกชันเคอร์เซอร์ของอ็อบเจ็กต์ผู้ใช้สำหรับผู้ใช้ทุกคนที่ผู้ใช้ที่ระบุติดตาม (หรือเรียกอีกอย่างว่า "เพื่อน")getFollowers() - ส่งคืนคอลเลกชันเคอร์เซอร์ของอ็อบเจ็กต์ผู้ใช้สำหรับผู้ใช้ที่ติดตามผู้ใช้ที่ระบุgetFriendshipsLookup() - ส่งคืนความสัมพันธ์ของผู้ใช้ที่ตรวจสอบความถูกต้องไปยังรายการที่คั่นด้วยเครื่องหมายจุลภาคของ screen_names หรือ user_id สูงสุด 100 รายการที่ระบุ ค่าสำหรับการเชื่อมต่ออาจเป็นดังนี้: กำลังติดตาม, กำลังติดตาม_ร้องขอ, ตาม_โดย, ไม่มี, การบล็อก, การปิดเสียง getGeo() - ส่งคืนข้อมูลทั้งหมดเกี่ยวกับสถานที่ที่รู้จักgetGeoReverse() - เมื่อกำหนดละติจูดและลองจิจูด ให้ค้นหาสถานที่ได้มากถึง 20 แห่งซึ่งสามารถใช้เป็น place_id เมื่ออัปเดตสถานะgetGeoSearch() - ค้นหาสถานที่ที่สามารถแนบไปกับสถานะ/อัปเดต เมื่อพิจารณาคู่ละติจูดและลองจิจูด ที่อยู่ IP หรือชื่อ คำขอนี้จะส่งคืนรายการสถานที่ที่ถูกต้องทั้งหมดที่สามารถใช้เป็น place_id เมื่ออัปเดตสถานะgetGeoSimilar() - ค้นหาสถานที่ใกล้กับพิกัดที่กำหนดซึ่งมีชื่อคล้ายกัน ตามหลักการแล้ว คุณจะใช้วิธีนี้เพื่อดูรายการสถานที่ทราบให้เลือกก่อน จากนั้น หากไม่มีสถานที่ที่ต้องการ ให้ส่งคำขอไปยัง POST ภูมิศาสตร์/สถานที่ เพื่อสร้างสถานที่ใหม่ โทเค็นที่มีอยู่ในการตอบกลับคือโทเค็นที่จำเป็นในการสร้างสถานที่ใหม่ postSpam() - รายงานผู้ใช้ที่ระบุว่าเป็นบัญชีสแปมไปยัง Twitter นอกจากนี้ยังดำเนินการเทียบเท่ากับการบล็อก / สร้าง POST ในนามของผู้ใช้ที่ได้รับการรับรองความถูกต้องgetHelpConfiguration() - ส่งคืนการกำหนดค่าปัจจุบันที่ Twitter ใช้ รวมถึงตัวทากของ twitter.com ที่ไม่ใช่ชื่อผู้ใช้ ความละเอียดสูงสุดของรูปภาพ และความยาว URL ของ t.cogetHelpLanguages() - ส่งคืนรายการภาษาที่ Twitter รองรับ พร้อมด้วยรหัสภาษาที่ Twitter รองรับgetHelpPrivacy() - คืนนโยบายความเป็นส่วนตัวของ TwittergetHelpTos() - คืนข้อกำหนดในการให้บริการของ Twitter หมายเหตุ: สิ่งเหล่านี้ไม่เหมือนกับนโยบายสำหรับนักพัฒนาซอฟต์แวร์getAppRateLimit() - ส่งกลับขีดจำกัดอัตราปัจจุบันสำหรับวิธีการที่เป็นของตระกูลทรัพยากรที่ระบุ getLists() - ส่งคืนรายการทั้งหมดที่ผู้ใช้ตรวจสอบสิทธิ์หรือระบุสมัครรับข้อมูล รวมถึงรายการของตนเองด้วย ระบุผู้ใช้โดยใช้พารามิเตอร์ user_id หรือ screen_name หากไม่มีการระบุผู้ใช้ ระบบจะใช้ผู้ใช้ที่ตรวจสอบสิทธิ์getListStatuses() - ส่งคืนไทม์ไลน์ของทวีตที่เขียนโดยสมาชิกของรายการที่ระบุ การรีทวีตจะถูกรวมไว้ตามค่าเริ่มต้น ใช้พารามิเตอร์ include_rts=false เพื่อละเว้นการรีทวีตdestroyListMember() - ลบสมาชิกที่ระบุออกจากรายการ ผู้ใช้ที่ได้รับการรับรองความถูกต้องจะต้องเป็นเจ้าของรายการเพื่อลบสมาชิกออกจากรายการgetListsMemberships() - ส่งคืนรายการที่ผู้ใช้ที่ระบุถูกเพิ่มเข้าไป หากไม่ได้ระบุ user_id หรือ screen_name ความเป็นสมาชิกสำหรับผู้ใช้ที่ตรวจสอบความถูกต้องจะถูกส่งคืนgetListsSubscribers() - ส่งคืนสมาชิกของรายการที่ระบุ สมาชิกรายการส่วนตัวจะแสดงก็ต่อเมื่อผู้ใช้ที่ได้รับการรับรองความถูกต้องเป็นเจ้าของรายการที่ระบุpostListSubscriber() - สมัครสมาชิกผู้ใช้ที่ได้รับการรับรองความถูกต้องในรายการที่ระบุgetListSubscriber() - ส่งคืนสมาชิกของรายการที่ระบุ สมาชิกรายการส่วนตัวจะแสดงก็ต่อเมื่อผู้ใช้ที่ได้รับการรับรองความถูกต้องเป็นเจ้าของรายการที่ระบุdestroyListSubscriber() - ยกเลิกการสมัครผู้ใช้ที่ได้รับการรับรองความถูกต้องจากรายการที่ระบุpostListCreateAll() - เพิ่มสมาชิกหลายรายการในรายการ โดยการระบุรายการรหัสสมาชิกหรือชื่อหน้าจอที่คั่นด้วยเครื่องหมายจุลภาค ผู้ใช้ที่ได้รับการรับรองความถูกต้องจะต้องเป็นเจ้าของรายการจึงจะสามารถเพิ่มสมาชิกได้ โปรดทราบว่ารายการมีสมาชิกได้ไม่เกิน 5,000 ราย และคุณสามารถเพิ่มสมาชิกลงในรายการได้ครั้งละ 100 รายด้วยวิธีนี้getListMember() - ตรวจสอบว่าผู้ใช้ที่ระบุเป็นสมาชิกของรายการที่ระบุหรือไม่getListMembers() - ส่งคืนสมาชิกของรายการที่ระบุ สมาชิกรายการส่วนตัวจะแสดงก็ต่อเมื่อผู้ใช้ที่ได้รับการรับรองความถูกต้องเป็นเจ้าของรายการที่ระบุpostListMember() - เพิ่มสมาชิกในรายการ ผู้ใช้ที่ได้รับการรับรองความถูกต้องจะต้องเป็นเจ้าของรายการจึงจะสามารถเพิ่มสมาชิกได้ โปรดทราบว่ารายการต้องมีสมาชิกไม่เกิน 5,000 คนdestroyList() - ลบรายการที่ระบุ ผู้ใช้ที่ได้รับการรับรองความถูกต้องจะต้องเป็นเจ้าของรายการจึงจะสามารถทำลายได้postListUpdate() - อัพเดตรายการที่ระบุ ผู้ใช้ที่ได้รับการรับรองความถูกต้องจะต้องเป็นเจ้าของรายการเพื่อให้สามารถอัปเดตได้postList() - สร้างรายการใหม่สำหรับผู้ใช้ที่ได้รับการรับรองความถูกต้อง โปรดทราบว่าคุณไม่สามารถสร้างรายการได้มากกว่า 20 รายการต่อบัญชีgetList() - ส่งคืนรายการที่ระบุ รายการส่วนตัวจะแสดงก็ต่อเมื่อผู้ใช้ที่ได้รับการรับรองความถูกต้องเป็นเจ้าของรายการที่ระบุgetListSubscriptions() - รับคอลเลกชันของรายการที่ผู้ใช้ที่ระบุสมัครรับข้อมูล 20 รายการต่อหน้าตามค่าเริ่มต้น ไม่รวมรายการของผู้ใช้เองdestroyListMembers() - ลบสมาชิกหลายรายการออกจากรายการ โดยระบุรายการรหัสสมาชิกหรือชื่อหน้าจอที่คั่นด้วยเครื่องหมายจุลภาค ผู้ใช้ที่ได้รับการรับรองความถูกต้องจะต้องเป็นเจ้าของรายการเพื่อให้สามารถลบสมาชิกออกจากรายการได้ โปรดทราบว่ารายการมีสมาชิกได้ไม่เกิน 500 ราย และคุณสามารถลบสมาชิกออกจากรายการได้ครั้งละไม่เกิน 100 รายด้วยวิธีนี้getListOwnerships() - ส่งคืนรายการที่เป็นของผู้ใช้ Twitter ที่ระบุ รายการส่วนตัวจะแสดงก็ต่อเมื่อผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์เป็นเจ้าของรายการด้วย uploadMedia() - อัปโหลดสื่อ (รูปภาพ) ไปยัง Twitter เพื่อใช้ในทวีตหรือการ์ดที่โฮสต์โดย Twitter getSearch() - ส่งคืนชุดทวีตที่เกี่ยวข้องซึ่งตรงกับข้อความค้นหาที่ระบุgetSavedSearches() - ส่งคืนคำค้นหาที่บันทึกไว้ของผู้ใช้ที่ผ่านการรับรองความถูกต้องgetSavedSearch() - ดึงข้อมูลสำหรับการค้นหาที่บันทึกไว้ซึ่งแสดงโดย ID ที่กำหนด ผู้ใช้ที่ตรวจสอบความถูกต้องจะต้องเป็นเจ้าของ ID การค้นหาที่บันทึกไว้ที่ถูกร้องขอpostSavedSearch() - สร้างการค้นหาที่บันทึกไว้ใหม่สำหรับผู้ใช้ที่ได้รับการรับรองความถูกต้อง ผู้ใช้อาจมีการค้นหาที่บันทึกไว้เพียง 25 รายการเท่านั้นdestroySavedSearch() - ทำลายการค้นหาที่บันทึกไว้สำหรับผู้ใช้ที่รับรองความถูกต้อง ผู้ใช้ที่ตรวจสอบความถูกต้องจะต้องเป็นเจ้าของ ID การค้นหาที่บันทึกไว้ที่ถูกทำลาย getMentionsTimeline() - ส่งคืนการกล่าวถึงล่าสุด 20 รายการ (ทวีตที่มี @screen_name ของผู้ใช้) สำหรับผู้ใช้ที่ตรวจสอบสิทธิ์getUserTimeline() - ส่งคืนคอลเลกชันของทวีตล่าสุดที่โพสต์โดยผู้ใช้ที่ระบุโดยพารามิเตอร์ screen_name หรือ user_idgetHomeTimeline() - ส่งคืนคอลเลกชันของทวีตและรีทวีตล่าสุดที่โพสต์โดยผู้ใช้ที่ตรวจสอบสิทธิ์และผู้ใช้ที่พวกเขาติดตาม ไทม์ไลน์หลักเป็นศูนย์กลางในการโต้ตอบของผู้ใช้ส่วนใหญ่กับบริการ Twitter -getRtsTimeline() - ส่งคืนทวีตล่าสุดที่เขียนโดยผู้ใช้ที่ตรวจสอบความถูกต้องและถูกรีทวีตโดยผู้อื่นgetRts() - ส่งคืนคอลเล็กชันของการรีทวีตล่าสุดของทวีต 100 รายการที่ระบุโดยพารามิเตอร์ idgetTweet() - ส่งคืนทวีตเดียวที่ระบุโดยพารามิเตอร์ id ผู้เขียนทวีตจะถูกฝังอยู่ภายในทวีตด้วยdestroyTweet() - ทำลายสถานะที่ระบุโดยพารามิเตอร์ ID ที่ต้องการ ผู้ใช้ที่ตรวจสอบความถูกต้องจะต้องเป็นผู้สร้างสถานะที่ระบุ คืนสถานะที่ถูกทำลายหากสำเร็จpostTweet() - อัปเดตสถานะปัจจุบันของผู้ใช้ที่ตรวจสอบสิทธิ์หรือที่เรียกว่าทวีตpostRt() - รีทวีตทวีต ส่งคืนทวีตต้นฉบับพร้อมรายละเอียดการรีทวีตที่ฝังอยู่getOembed() - ส่งกลับทวีตเดียวที่ระบุโดย URL ของเว็บทวีตหรือรหัสทวีต ในรูปแบบที่เข้ากันได้กับ oEmbed ข้อมูลโค้ด HTML ที่ส่งคืนจะถูกจดจำโดยอัตโนมัติว่าเป็นทวีตแบบฝัง เมื่อมีการรวมวิดเจ็ต JavaScript ของ Twitter ไว้ในเพจgetRters() - ส่งคืนคอลเลกชัน ID ผู้ใช้สูงสุด 100 รายการที่เป็นของผู้ใช้ที่รีทวีตทวีตที่ระบุโดยพารามิเตอร์ idgetStatusesLookup() - ส่งคืนอ็อบเจ็กต์ทวีตที่มีไฮเดรตแบบเต็มสำหรับทวีตสูงสุด 100 ทวีตต่อคำขอ ตามที่ระบุโดยค่าที่คั่นด้วยเครื่องหมายจุลภาคที่ส่งไปยังพารามิเตอร์ id getTrendsPlace() - ส่งคืนหัวข้อมาแรง 10 อันดับแรกสำหรับ WOEID เฉพาะเจาะจง หากมีข้อมูลมาแรงgetTrendsAvailable() - ส่งคืนตำแหน่งที่ Twitter มีข้อมูลหัวข้อที่กำลังได้รับความนิยมgetTrendsClosest() - ส่งกลับตำแหน่งที่ Twitter มีข้อมูลหัวข้อที่กำลังได้รับความนิยม ซึ่งใกล้กับตำแหน่งที่ระบุมากที่สุด getUsersLookup() - ส่งคืนออบเจ็กต์ผู้ใช้ที่มีข้อมูลครบถ้วนสำหรับผู้ใช้สูงสุด 100 รายต่อคำขอ ตามที่ระบุโดยค่าที่คั่นด้วยเครื่องหมายจุลภาคที่ส่งไปยังพารามิเตอร์ user_id และ/หรือ screen_namegetUsers() - ส่งคืนข้อมูลที่หลากหลายเกี่ยวกับผู้ใช้ที่ระบุโดยพารามิเตอร์ user_id หรือ screen_name ที่จำเป็น ทวีตล่าสุดของผู้เขียนจะถูกส่งกลับในบรรทัดเมื่อเป็นไปได้getUsersSearch() - ให้อินเทอร์เฟซการค้นหาที่เรียบง่ายตามความเกี่ยวข้องสำหรับบัญชีผู้ใช้สาธารณะบน Twitter ลองค้นหาตามความสนใจ ชื่อเต็ม ชื่อบริษัท สถานที่ตั้ง หรือเกณฑ์อื่นๆ ไม่รองรับการค้นหาแบบตรงทั้งหมดgetUserBanner() - ส่งคืนแผนผังขนาดต่างๆ ที่มีอยู่ของแบนเนอร์โปรไฟล์ของผู้ใช้ที่ระบุ หากผู้ใช้ไม่ได้อัปโหลดแบนเนอร์โปรไฟล์ ระบบจะใช้ HTTP 404 แทน สามารถใช้วิธีนี้แทนการจัดการสตริงบนprofile_banner_urlที่ส่งคืนในอ็อบเจ็กต์ผู้ใช้ตามที่อธิบายไว้ในรูปภาพโปรไฟล์และแบนเนอร์muteUser() - ปิดเสียงผู้ใช้ที่ระบุในพารามิเตอร์ ID สำหรับผู้ใช้ที่ตรวจสอบสิทธิ์unmuteUser() - ยกเลิกการปิดเสียงผู้ใช้ที่ระบุในพารามิเตอร์ ID สำหรับผู้ใช้ที่ตรวจสอบสิทธิ์mutedUserIds() - ส่งกลับอาร์เรย์ของรหัสผู้ใช้ที่เป็นตัวเลขที่ผู้ใช้ตรวจสอบความถูกต้องได้ปิดเสียงไว้mutedUsers() - ส่งคืนอาร์เรย์ของอ็อบเจ็กต์ผู้ใช้ที่ผู้ใช้ตรวจสอบความถูกต้องได้ปิดเสียงgetSuggesteds() - เข้าถึงผู้ใช้ในหมวดหมู่ที่กำหนดของรายชื่อผู้ใช้ที่แนะนำของ TwittergetSuggestions() - เข้าถึงรายชื่อผู้ใช้ที่แนะนำของ Twitter ซึ่งจะส่งคืนรายการหมวดหมู่ผู้ใช้ที่แนะนำ หมวดหมู่สามารถใช้ใน GET users / comparison / :slug เพื่อรับผู้ใช้ในหมวดหมู่นั้นgetSuggestedsMembers() - เข้าถึงผู้ใช้ในหมวดหมู่ที่กำหนดของรายชื่อผู้ใช้ที่แนะนำของ Twitter และส่งคืนสถานะล่าสุดหากไม่ใช่ผู้ใช้ที่ได้รับการป้องกันgetTweet() - ส่งคืนข้อมูลที่หลากหลายเกี่ยวกับทวีตเดียวที่ระบุโดย ID ที่ร้องขอgetTweets() - ส่งคืนข้อมูลที่หลากหลายเกี่ยวกับทวีตที่ระบุโดย ID ที่ร้องขอหรือรายการ ID searchRecent() - จุดสิ้นสุดการค้นหาล่าสุดส่งคืนทวีตจากเจ็ดวันล่าสุดที่ตรงกับคำค้นหา
searchAll() - จุดสิ้นสุดการค้นหาที่เก็บถาวรแบบเต็มจะส่งคืนประวัติที่สมบูรณ์ของทวีตสาธารณะที่ตรงกับคำค้นหา นับตั้งแต่ทวีตแรกถูกสร้างขึ้นเมื่อวันที่ 26 มีนาคม พ.ศ. 2549
หมายเหตุ: ตำแหน่งข้อมูลนี้มีให้เฉพาะกับผู้ที่ได้รับอนุมัติสำหรับกลุ่มผลิตภัณฑ์การวิจัยทางวิชาการเท่านั้น
userTweets() - ส่งคืนทวีตที่แต่งโดยผู้ใช้คนเดียว ระบุโดย ID ผู้ใช้ที่ร้องขอ ตามค่าเริ่มต้น สิบทวีตล่าสุดจะถูกส่งกลับตามคำขอ การใช้การแบ่งหน้าสามารถดึงข้อมูลทวีตล่าสุดได้ 3,200 ทวีตuserMentions() - ส่งคืนทวีตที่กล่าวถึงผู้ใช้รายเดียวที่ระบุโดย ID ผู้ใช้ที่ร้องขอ ตามค่าเริ่มต้น สิบทวีตล่าสุดจะถูกส่งกลับตามคำขอ การใช้การแบ่งหน้าสามารถดึงข้อมูลทวีตล่าสุดได้มากถึง 800 ทวีต getStreamRules() - ส่งคืนรายการกฎที่ใช้งานอยู่ในปัจจุบันบนจุดสิ้นสุดการสตรีม ไม่ว่าจะเป็นแบบรายการหรือทีละรายการpostStreamRules() - เพิ่มหรือลบกฎเกณฑ์ในการสตรีมของคุณgetStream() - สตรีมทวีตแบบเรียลไทม์ตามกฎตัวกรองชุดเฉพาะ getSampledStream() - สตรีมประมาณ 1% ของทวีตทั้งหมดแบบเรียลไทม์ hideTweet() - ซ่อนหรือยกเลิกการซ่อนการตอบกลับทวีต countRecent() - รับจำนวนทวีตที่ตรงกับข้อความค้นหาในช่วง 7 วันที่ผ่านมา
countAll() - รับจำนวนทวีตที่ตรงกับข้อความค้นหา
หมายเหตุ: มีให้ใช้งานผ่านช่องทางผลิตภัณฑ์การวิจัยเชิงวิชาการเท่านั้น
Linkify : แปลง URL, @ชื่อผู้ใช้, แฮชแท็กเป็นลิงก์ ประเภทของ $ทวีตอาจเป็นวัตถุ อาร์เรย์ หรือข้อความก็ได้ โดยการส่งวัตถุหรืออาร์เรย์วิธีการจะขยายลิงก์ (t.co) ด้วย
Twitter:: linkify ( $ tweet );ที่ผ่านมา : แปลงวันที่ให้เป็นค่าความแตกต่าง (2 ชั่วโมงที่แล้ว)
Twitter:: ago ( $ timestamp );LinkUser : สร้างลิงก์ไปยังผู้ใช้เฉพาะตามอ็อบเจ็กต์ผู้ใช้ (เช่น $twitter->ผู้ใช้) หรือ id/string
Twitter:: linkUser ( $ user );LinkTweet : สร้างลิงก์ไปยังทวีตเฉพาะ
Twitter:: linkTweet ( $ tweet );ส่งคืนคอลเลกชันของทวีตล่าสุดที่โพสต์โดยผู้ใช้ที่ระบุโดยพารามิเตอร์ screen_name หรือ user_id
Route:: get ( ' /userTimeline ' , function ()
{
return Twitter:: getUserTimeline ([ ' screen_name ' => ' thujohn ' , ' count ' => 20 , ' response_format ' => ' json ' ]);
});ส่งคืนคอลเลกชันของทวีตและรีทวีตล่าสุดที่โพสต์โดยผู้ใช้ที่ตรวจสอบสิทธิ์และผู้ใช้ที่พวกเขาติดตาม
Route:: get ( ' /homeTimeline ' , function ()
{
return Twitter:: getHomeTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});ส่งคืนการกล่าวถึง X ล่าสุด (ทวีตที่มี @screen_name ของผู้ใช้) สำหรับผู้ใช้ที่ตรวจสอบสิทธิ์
Route:: get ( ' /mentionsTimeline ' , function ()
{
return Twitter:: getMentionsTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});อัปเดตสถานะปัจจุบันของผู้ใช้ที่ตรวจสอบสิทธิ์หรือที่เรียกว่าทวีต
Route:: get ( ' /tweet ' , function ()
{
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' response_format ' => ' json ' ]);
});อัพเดตสถานะปัจจุบันของผู้ใช้การตรวจสอบความถูกต้องด้วยสื่อ
Route:: get ( ' /tweetMedia ' , function ()
{
$ uploaded_media = Twitter:: uploadMedia ([ ' media ' => File:: get ( public_path ( ' filename.jpg ' ))]);
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' media_ids ' => $ uploaded_media -> media_id_string ]);
});รับข้อมูลรับรองผู้ใช้ด้วยอีเมล
$credentials = Twitter::getCredentials([
'include_email' => 'true',
]);
ข้างต้น คุณต้องส่งค่าจริงเป็นสตริง ไม่ใช่ส่งเป็นบูลีน บูลีนจะถูกแปลงเป็น
1ซึ่ง Twitter ไม่สนใจ
นอกจากนี้ยังถือว่าคุณตั้งค่าการอนุญาตของคุณอย่างถูกต้องกับ Twitter คุณต้องเลือก "รับอีเมลผู้ใช้" เมื่อคุณตั้งค่าแอป Twitter การส่งค่าเพียงอย่างเดียวจะไม่เพียงพอ
เข้าสู่ระบบด้วยทวิตเตอร์
use Atymic Twitter Facade Twitter ;
Route:: get ( ' twitter/login ' , [ ' as ' => ' twitter.login ' , static function () {
$ token = Twitter:: getRequestToken ( route ( ' twitter.callback ' ));
if ( isset ( $ token [ ' oauth_token_secret ' ])) {
$ url = Twitter:: getAuthenticateUrl ( $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_state ' , ' start ' );
Session:: put ( ' oauth_request_token ' , $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_request_token_secret ' , $ token [ ' oauth_token_secret ' ]);
return Redirect:: to ( $ url );
}
return Redirect:: route ( ' twitter.error ' );
}]);
Route:: get ( ' twitter/callback ' , [ ' as ' => ' twitter.callback ' , static function () {
// You should set this route on your Twitter Application settings as the callback
// https://apps.twitter.com/app/YOUR-APP-ID/settings
if (Session:: has ( ' oauth_request_token ' )) {
$ twitter = Twitter:: usingCredentials ( session ( ' oauth_request_token ' ), session ( ' oauth_request_token_secret ' ));
$ token = $ twitter -> getAccessToken ( request ( ' oauth_verifier ' ));
if (! isset ( $ token [ ' oauth_token_secret ' ])) {
return Redirect:: route ( ' twitter.error ' )-> with ( ' flash_error ' , ' We could not log you in on Twitter. ' );
}
// use new tokens
$ twitter = Twitter:: usingCredentials ( $ token [ ' oauth_token ' ], $ token [ ' oauth_token_secret ' ]);
$ credentials = $ twitter -> getCredentials ();
if ( is_object ( $ credentials ) && ! isset ( $ credentials -> error )) {
// $credentials contains the Twitter user object with all the info about the user.
// Add here your own user logic, store profiles, create new users on your tables...you name it!
// Typically you'll want to store at least, user id, name and access tokens
// if you want to be able to call the API on behalf of your users.
// This is also the moment to log in your users if you're using Laravel's Auth class
// Auth::login($user) should do the trick.
Session:: put ( ' access_token ' , $ token );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' Congrats! You ' ve successfully signed in! ' );
}
}
return Redirect:: route ( ' twitter.error ' )
-> with ( ' error ' , ' Crab! Something went wrong while signing you up! ' );
}]);
Route:: get ( ' twitter/error ' , [ ' as ' => ' twitter.error ' , function () {
// Something went wrong, add your own error handling here
}]);
Route:: get ( ' twitter/logout ' , [ ' as ' => ' twitter.logout ' , function () {
Session:: forget ( ' access_token ' );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' You ' ve successfully logged out! ' );
}]);เว็บฮุค
หากต้องการตั้งค่า webhook ให้สำเร็จ คุณจะต้องส่งคืนแฮชโดยใช้โทเค็น CRC เพื่อตอบกลับจาก URL ของ webhook ของคุณ (ข้อมูลเพิ่มเติม)
Route:: post ( ' twitter/webhook ' , [ ' as ' => ' twitter.webhook ' , function (){
if ( request ()-> has ( ' crc_token ' ))
return response ()-> json ([ ' response_token ' => Twitter:: crcHash ( request ()-> crc_token )], 200 );
// Your webhook logic goes here
}]);รับทวีตของผู้ใช้:
// ...
use Atymic Twitter Twitter as TwitterContract ;
use Illuminate Http JsonResponse ;
use Twitter ;
// ...
public function userTweets ( int $ userId ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: userTweets ( $ userId , $ params ));
}ค้นหาทวีต:
// ...
public function searchRecent ( string $ query ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: searchRecent ( $ query , $ params ));
}
// ... เนื่องจาก Twitter API v2 อยู่ในระหว่างการพัฒนา คุณอาจต้องเรียกใช้ตำแหน่งข้อมูลซึ่งเราไม่ได้ระบุไว้อย่างชัดเจนในส่วน "ฟังก์ชัน" ด้านบน นี่คือตัวอย่างวิธีที่คุณสามารถใช้แพ็คเกจนี้เพื่อโทรไปยังปลายทางที่เพิ่มใหม่ ที่นี่เราใช้จุดสิ้นสุด "การนับล่าสุด" ที่เพิ่มเข้ามาใหม่
// ...
$ querier = Atymic Twitter Facade Twitter:: forApiV2 ()
-> getQuerier ();
$ result = $ querier
-> withOAuth2Client ()
-> get ( ' tweets/counts/recent ' , [ ' query ' => ' foo ' ]);
// ... ขั้นแรกให้เปิดใช้งานโหมดแก้ไขข้อบกพร่องในไฟล์ปรับแต่ง
จากนั้นคุณก็จะสามารถเข้าถึงเมธอด logs() ได้
try
{
$ response = Twitter:: getUserTimeline ([ ' count ' => 20 , ' response_format ' => ' array ' ]);
}
catch ( Exception $ e )
{
// dd(Twitter::error());
dd (Twitter:: logs ());
}
dd ( $ response );