Twitter API untuk Laravel 10.x, 11.x (dan versi baru saat dirilis). Juga mendukung kerangka kerja lain melalui PHP-DI (atau silakan menambahkan dukungan untuk kerangka kerja Anda melalui PR)
Anda perlu membuat aplikasi dan membuat token akses Anda di Manajemen Aplikasi.
composer require atymic/twitter:^3.0 -W
Cukup atur variabel lingkungan di bawah ini di .env
Anda.
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_API_VERSION=
Jalankan php artisan vendor:publish --provider="AtymicTwitterServiceProviderLaravelServiceProvider"
/config/twitter.php
3.x adalah versi utama saat ini, dan tidak kompatibel dengan 2.x.
Lihat panduan migrasi di UPGRADE.md.
2.x tidak lagi dipertahankan. Kami tidak menerima perbaikan bug, harap tingkatkan ke 3.x
Anda dapat memilih di antara tiga format keluaran yang berbeda. Secara default, respons API v1 akan dikembalikan sebagai objek sedangkan respons API v2 akan dikembalikan sebagai JSON. Untuk mengubahnya, gunakan opsi response_format
di parameter yang Anda teruskan ke metode apa pun.
response_format : object|json|array (v1 default:object) (v2 default:json)
Untuk menyetel versi API Twitter default ke v2, bukan v1.1
default, setel TWITTER_API_VERSION
ke 2
di .env
Anda.
Jika Anda telah menetapkan api v1.1
sebagai default, Anda dapat menggunakan use Twitter::forApiV2()
untuk mendapatkan instance klien v2. Hal yang sama berlaku untuk mendapatkan instance v1
dari klien v2
, menggunakan Twitter::forApiV1()
.
Aman untuk memanggil Twitter::forApiV1()
pada instance klien v1
atau v2
.
getSettings()
- Mengembalikan pengaturan (termasuk tren saat ini, informasi geografis dan waktu tidur) untuk pengguna yang mengautentikasi.getCredentials()
postSettings()
- Memperbarui pengaturan pengguna yang mengautentikasi.postSettingsDevice()
- Menyetel perangkat mana yang akan dikirimi pembaruan oleh Twitter untuk pengguna yang mengautentikasi. Tidak mengirimkan apa pun sebagai parameter perangkat akan menonaktifkan pembaruan SMS.postProfile()
- Menetapkan beberapa nilai yang dapat ditetapkan pengguna di tab “Akun” pada halaman pengaturan mereka. Hanya parameter yang ditentukan yang akan diperbarui.postBackground()
- Memperbarui gambar latar belakang profil pengguna yang mengautentikasi. Cara ini juga dapat digunakan untuk mengaktifkan atau menonaktifkan gambar latar profil.postProfileImage()
- Memperbarui gambar profil pengguna yang mengautentikasi. Perhatikan bahwa metode ini mengharapkan data multibagian mentah, bukan URL ke gambar.destroyUserBanner()
- Menghapus spanduk profil yang diunggah untuk pengguna yang mengautentikasi. Mengembalikan HTTP 200 setelah berhasil.postUserBanner()
- Mengunggah spanduk profil atas nama pengguna yang mengautentikasi. Untuk hasil terbaik, unggah node profile_banner_url di objek Pengguna. setWebhook($env, $url)
- Mendaftarkan url webhook untuk semua jenis acara di lingkungan tertentu.crcHash($crcToken)
- Mengembalikan hash HMAC SHA-256 dari token CRC dan rahasia konsumen yang diberikan. Anda harus mengembalikan ini di webhook Anda (info lebih lanjut).getWebhooks($env)
- Mengembalikan URL webhook untuk lingkungan tertentu (atau semua lingkungan jika tidak ada yang disediakan), dan statusnya untuk aplikasi autentikasi.updateWebhooks($env, $webhookId)
- Memicu pemeriksaan respons tantangan (CRC) untuk webhook lingkungan tertentu untuk semua aktivitas. Jika pemeriksaan berhasil, kembalikan nilai true dan aktifkan kembali webhook dengan mengatur statusnya menjadi valid.destroyWebhook($env, $webhookId)
- Menghapus webhook dari semua konfigurasi aktivitas aplikasi yang disediakan. Mengembalikan kebenaran pada kesuksesan.setSubscriptions($env)
- Melanggankan aplikasi yang disediakan ke semua acara untuk lingkungan yang disediakan untuk semua jenis pesan. Mengembalikan kebenaran pada kesuksesan.getSubscriptions($env)
- Mengembalikan nilai true jika konteks pengguna yang disediakan memiliki langganan aktif dengan aplikasi yang disediakan.getSubscriptionsCount()
- Mengembalikan jumlah langganan yang saat ini aktif di akun Anda untuk semua aktivitas.getSubscriptionsList($env)
- Mengembalikan daftar langganan jenis Semua Aktivitas saat ini.destroyUserSubscriptions($env, $userId)
- Menonaktifkan langganan untuk id pengguna tertentu dari lingkungan. Mengembalikan kebenaran pada kesuksesan. getBlocks()
- Mengembalikan kumpulan objek pengguna yang diblokir oleh pengguna yang mengautentikasi.getBlocksIds()
- Mengembalikan array id pengguna numerik yang diblokir oleh pengguna autentikasi.postBlock()
- Memblokir pengguna tertentu agar tidak mengikuti pengguna yang mengautentikasi. Selain itu, pengguna yang diblokir tidak akan ditampilkan dalam penyebutan atau timeline pengguna yang mengautentikasi (kecuali di-retweet oleh pengguna lain). Jika ada hubungan mengikuti atau berteman, itu akan hancur.destroyBlock()
- Membatalkan pemblokiran pengguna yang ditentukan dalam parameter ID untuk pengguna yang mengautentikasi. Mengembalikan pengguna yang tidak diblokir dalam format yang diminta ketika berhasil. Jika hubungan sudah ada sebelum pemblokiran diterapkan, hubungan tersebut tidak akan dipulihkan. getDm()
- Mengembalikan satu peristiwa pesan langsung, yang ditentukan oleh parameter id.getDms()
- Mengembalikan semua kejadian Direct Message (baik yang dikirim maupun diterima) dalam 30 hari terakhir. Diurutkan dalam urutan kronologis terbalik.destroyDm()
- Menghancurkan pesan langsung yang ditentukan dalam parameter ID yang diperlukan. Pengguna yang mengautentikasi harus menjadi penerima pesan langsung yang ditentukan.postDm()
- Memublikasikan peristiwa message_create baru yang menghasilkan Direct Message yang dikirim ke pengguna tertentu dari pengguna yang mengautentikasi. Mengembalikan acara jika berhasil. Mendukung penerbitan Direct Message dengan Quick Reply opsional dan lampiran media. getFavorites()
- Mengembalikan 20 Tweet terbaru yang difavoritkan oleh pengguna yang mengautentikasi atau ditentukan.destroyFavorite()
- Membatalkan favorit status yang ditentukan dalam parameter ID sebagai pengguna yang mengautentikasi. Mengembalikan status tidak difavoritkan dalam format yang diminta ketika berhasil.postFavorite()
- Memfavoritkan status yang ditentukan dalam parameter ID sebagai pengguna autentikasi. Mengembalikan status favorit ketika berhasil. getNoRters()
- Mengembalikan kumpulan user_ids yang tidak ingin di-retweet oleh pengguna yang saat ini diautentikasi.getFriendsIds()
- Mengembalikan kumpulan ID pengguna yang diarahkan untuk setiap pengguna yang mengikuti pengguna tertentu.getFollowersIds()
- Mengembalikan kumpulan ID pengguna yang diarahkan untuk setiap pengguna yang mengikuti pengguna tertentu.getFriendshipsIn()
- Mengembalikan kumpulan ID numerik untuk setiap pengguna yang memiliki permintaan tertunda untuk mengikuti pengguna yang mengautentikasi.getFriendshipsOut()
- Mengembalikan kumpulan ID numerik untuk setiap pengguna yang dilindungi yang permintaan tindak lanjutnya tertunda oleh pengguna yang mengautentikasi.postFollow()
- Memungkinkan pengguna yang mengautentikasi mengikuti pengguna yang ditentukan dalam parameter ID.postUnfollow()
- Memungkinkan pengguna yang mengautentikasi untuk berhenti mengikuti pengguna yang ditentukan dalam parameter ID.postFollowUpdate()
- Memungkinkan seseorang untuk mengaktifkan atau menonaktifkan retweet dan pemberitahuan perangkat dari pengguna tertentu.getFriendships()
- Mengembalikan informasi rinci tentang hubungan antara dua pengguna sewenang-wenang.getFriends()
- Mengembalikan kumpulan objek pengguna yang dikursor untuk setiap pengguna yang diikuti oleh pengguna tertentu (atau dikenal sebagai "teman" mereka).getFollowers()
- Mengembalikan kumpulan objek pengguna yang diarahkan untuk pengguna yang mengikuti pengguna tertentu.getFriendshipsLookup()
- Mengembalikan hubungan pengguna yang mengautentikasi ke daftar yang dipisahkan koma hingga 100 nama_layar atau ID_pengguna yang disediakan. Nilai untuk koneksi dapat berupa: mengikuti, mengikuti_diminta, diikuti_oleh, tidak ada, memblokir, membungkam. getGeo()
- Mengembalikan semua informasi tentang tempat yang diketahui.getGeoReverse()
- Mengingat garis lintang dan garis bujur, menelusuri hingga 20 tempat yang dapat digunakan sebagai place_id saat memperbarui status.getGeoSearch()
- Mencari tempat yang dapat dilampirkan ke status/pembaruan. Mengingat pasangan lintang dan bujur, alamat IP, atau nama, permintaan ini akan mengembalikan daftar semua tempat valid yang dapat digunakan sebagai place_id saat memperbarui status.getGeoSimilar()
- Menemukan tempat di dekat koordinat tertentu yang namanya mirip. Secara konseptual Anda akan menggunakan metode ini untuk mendapatkan daftar tempat yang diketahui untuk dipilih terlebih dahulu. Lalu jika tempat yang diinginkan tidak ada, lakukan request ke POST geo/tempat untuk membuat yang baru. Token yang terdapat dalam respon adalah token yang dibutuhkan untuk dapat membuat tempat baru. postSpam()
- Laporkan pengguna tertentu sebagai akun spam ke Twitter. Selain itu melakukan hal yang setara dengan blok POST/buat atas nama pengguna yang diautentikasi.getHelpConfiguration()
- Mengembalikan konfigurasi saat ini yang digunakan oleh Twitter termasuk slug twitter.com yang bukan nama pengguna, resolusi foto maksimum, dan panjang URL t.co.getHelpLanguages()
- Mengembalikan daftar bahasa yang didukung oleh Twitter beserta kode bahasa yang didukung oleh Twitter.getHelpPrivacy()
- Mengembalikan Kebijakan Privasi Twitter.getHelpTos()
- Mengembalikan Ketentuan Layanan Twitter. Catatan: ini tidak sama dengan Kebijakan Pengembang.getAppRateLimit()
- Mengembalikan batas kecepatan saat ini untuk metode yang termasuk dalam kelompok sumber daya tertentu. getLists()
- Mengembalikan semua daftar langganan pengguna yang mengautentikasi atau tertentu, termasuk daftar mereka sendiri. Pengguna ditentukan menggunakan parameter user_id atau screen_name. Jika tidak ada pengguna yang diberikan, pengguna autentikasi digunakan.getListStatuses()
- Mengembalikan garis waktu tweet yang ditulis oleh anggota daftar yang ditentukan. Retweet disertakan secara default. Gunakan parameter include_rts=false untuk menghilangkan retweet.destroyListMember()
- Menghapus anggota tertentu dari daftar. Pengguna yang diautentikasi harus menjadi pemilik daftar untuk menghapus anggota dari daftar.getListsMemberships()
- Mengembalikan daftar tempat pengguna tertentu telah ditambahkan. Jika user_id atau screen_name tidak diberikan, keanggotaan untuk pengguna yang mengautentikasi akan dikembalikan.getListsSubscribers()
- Mengembalikan pelanggan dari daftar yang ditentukan. Pelanggan daftar pribadi hanya akan ditampilkan jika pengguna yang diautentikasi adalah pemilik daftar yang ditentukan.postListSubscriber()
- Melanggankan pengguna yang diautentikasi ke daftar yang ditentukan.getListSubscriber()
- Mengembalikan pelanggan dari daftar yang ditentukan. Pelanggan daftar pribadi hanya akan ditampilkan jika pengguna yang diautentikasi adalah pemilik daftar yang ditentukan.destroyListSubscriber()
- Membatalkan langganan pengguna yang diautentikasi dari daftar yang ditentukan.postListCreateAll()
- Menambahkan beberapa anggota ke daftar, dengan menentukan daftar id anggota atau nama layar yang dipisahkan koma. Pengguna yang diautentikasi harus memiliki daftar tersebut agar dapat menambahkan anggota ke dalamnya. Perhatikan bahwa daftar tidak boleh memiliki lebih dari 5.000 anggota, dan Anda dibatasi untuk menambahkan hingga 100 anggota ke daftar sekaligus dengan metode ini.getListMember()
- Periksa apakah pengguna tertentu adalah anggota dari daftar yang ditentukan.getListMembers()
- Mengembalikan anggota daftar yang ditentukan. Anggota daftar pribadi hanya akan ditampilkan jika pengguna yang diautentikasi adalah pemilik daftar yang ditentukan.postListMember()
- Tambahkan anggota ke daftar. Pengguna yang diautentikasi harus memiliki daftar tersebut agar dapat menambahkan anggota ke dalamnya. Perhatikan bahwa daftar tidak boleh memiliki lebih dari 5.000 anggota.destroyList()
- Menghapus daftar yang ditentukan. Pengguna yang diautentikasi harus memiliki daftar tersebut agar dapat menghancurkannya.postListUpdate()
- Memperbarui daftar yang ditentukan. Pengguna yang diautentikasi harus memiliki daftar tersebut agar dapat memperbaruinya.postList()
- Membuat daftar baru untuk pengguna yang diautentikasi. Perhatikan bahwa Anda tidak dapat membuat lebih dari 20 daftar per akun.getList()
- Mengembalikan daftar yang ditentukan. Daftar pribadi hanya akan ditampilkan jika pengguna yang diautentikasi adalah pemilik daftar yang ditentukan.getListSubscriptions()
- Dapatkan koleksi daftar langganan pengguna tertentu, 20 daftar per halaman secara default. Tidak termasuk daftar milik pengguna.destroyListMembers()
- Menghapus beberapa anggota dari daftar, dengan menentukan daftar id anggota atau nama layar yang dipisahkan koma. Pengguna yang diautentikasi harus memiliki daftar tersebut agar dapat menghapus anggota dari daftar tersebut. Perhatikan bahwa daftar tidak boleh memiliki lebih dari 500 anggota, dan Anda dibatasi untuk menghapus hingga 100 anggota ke daftar sekaligus dengan metode ini.getListOwnerships()
- Mengembalikan daftar yang dimiliki oleh pengguna Twitter tertentu. Daftar pribadi hanya akan ditampilkan jika pengguna yang diautentikasi juga merupakan pemilik daftar tersebut. uploadMedia()
- Unggah media (gambar) ke Twitter, untuk digunakan dalam Tweet atau Kartu yang dihosting Twitter. getSearch()
- Mengembalikan kumpulan Tweet relevan yang cocok dengan kueri tertentu.getSavedSearches()
- Mengembalikan kueri penelusuran tersimpan pengguna yang diautentikasi.getSavedSearch()
- Mengambil informasi untuk pencarian tersimpan yang diwakili oleh id yang diberikan. Pengguna yang mengautentikasi harus merupakan pemilik ID pencarian tersimpan yang diminta.postSavedSearch()
- Membuat pencarian tersimpan baru untuk pengguna yang diautentikasi. Seorang pengguna hanya boleh memiliki 25 pencarian tersimpan.destroySavedSearch()
- Menghancurkan pencarian tersimpan untuk pengguna yang mengautentikasi. Pengguna yang mengautentikasi harus menjadi pemilik id pencarian tersimpan yang dimusnahkan. getMentionsTimeline()
- Mengembalikan 20 sebutan terbaru (tweet yang berisi @nama_layar pengguna) untuk pengguna yang mengautentikasi.getUserTimeline()
- Mengembalikan kumpulan Tweet terbaru yang diposting oleh pengguna yang ditunjukkan oleh parameter screen_name atau user_id.getHomeTimeline()
- Mengembalikan kumpulan Tweet dan retweet terbaru yang diposting oleh pengguna yang mengautentikasi dan pengguna yang mereka ikuti. Garis waktu beranda sangat penting dalam cara sebagian besar pengguna berinteraksi dengan layanan Twitter. *getRtsTimeline()
- Mengembalikan tweet terbaru yang dibuat oleh pengguna yang mengautentikasi dan telah di-retweet oleh orang lain.getRts()
- Mengembalikan kumpulan 100 retweet terbaru dari tweet yang ditentukan oleh parameter id.getTweet()
- Mengembalikan satu Tweet, yang ditentukan oleh parameter id. Penulis Tweet juga akan dimasukkan ke dalam tweet.destroyTweet()
- Menghancurkan status yang ditentukan oleh parameter ID yang diperlukan. Pengguna yang mengautentikasi harus merupakan pembuat status yang ditentukan. Mengembalikan status hancur jika berhasil.postTweet()
- Memperbarui status terkini pengguna yang mengautentikasi, juga dikenal sebagai tweeting.postRt()
- Me-retweet tweet. Mengembalikan tweet asli dengan detail retweet yang tertanam.getOembed()
- Mengembalikan satu Tweet, yang ditentukan oleh URL web Tweet atau ID Tweet, dalam format yang kompatibel dengan oEmbed. Cuplikan HTML yang dikembalikan akan secara otomatis dikenali sebagai Tweet Tertanam ketika widget JavaScript Twitter disertakan pada halaman tersebut.getRters()
- Mengembalikan kumpulan hingga 100 ID pengguna milik pengguna yang telah me-retweet tweet yang ditentukan oleh parameter id.getStatusesLookup()
- Mengembalikan objek tweet yang terhidrasi sepenuhnya hingga 100 tweet per permintaan, sebagaimana ditentukan oleh nilai yang dipisahkan koma yang diteruskan ke parameter id. getTrendsPlace()
- Mengembalikan 10 topik trending teratas untuk WOEID tertentu, jika informasi trending tersedia untuk WOEID tersebut.getTrendsAvailable()
- Mengembalikan lokasi yang informasi topiknya sedang tren di Twitter.getTrendsClosest()
- Mengembalikan lokasi yang informasi topiknya sedang tren di Twitter, paling dekat dengan lokasi tertentu. getUsersLookup()
- Mengembalikan objek pengguna yang terhidrasi sepenuhnya hingga 100 pengguna per permintaan, sebagaimana ditentukan oleh nilai yang dipisahkan koma yang diteruskan ke parameter user_id dan/atau screen_name.getUsers()
- Mengembalikan berbagai informasi tentang pengguna yang ditentukan oleh parameter user_id atau screen_name yang diperlukan. Tweet terbaru penulis akan dikembalikan sebaris jika memungkinkan.getUsersSearch()
- Menyediakan antarmuka pencarian sederhana berbasis relevansi untuk akun pengguna publik di Twitter. Coba kueri berdasarkan minat topik, nama lengkap, nama perusahaan, lokasi, atau kriteria lainnya. Pencarian pencocokan tepat tidak didukung.getUserBanner()
- Mengembalikan peta variasi ukuran yang tersedia dari spanduk profil pengguna tertentu. Jika pengguna belum mengunggah spanduk profil, HTTP 404 akan disajikan. Metode ini dapat digunakan sebagai pengganti manipulasi string pada profile_banner_url yang dikembalikan dalam objek pengguna seperti yang dijelaskan dalam Gambar Profil dan Spanduk.muteUser()
- Membisukan pengguna yang ditentukan dalam parameter ID untuk pengguna yang mengautentikasi.unmuteUser()
- Membisukan pengguna yang ditentukan dalam parameter ID untuk pengguna yang mengautentikasi.mutedUserIds()
- Mengembalikan array id pengguna numerik yang telah dibisukan oleh pengguna autentikasi.mutedUsers()
- Mengembalikan array objek pengguna yang telah dibisukan oleh pengguna autentikasi.getSuggesteds()
- Akses pengguna dalam kategori tertentu dari daftar pengguna yang disarankan Twitter.getSuggestions()
- Akses ke daftar pengguna yang disarankan Twitter. Ini mengembalikan daftar kategori pengguna yang disarankan. Kategori ini dapat digunakan di GET pengguna / saran / :slug untuk mendapatkan pengguna dalam kategori tersebut.getSuggestedsMembers()
- Akses pengguna dalam kategori tertentu dari daftar pengguna yang disarankan Twitter dan kembalikan status terbaru mereka jika mereka bukan pengguna yang dilindungi.getTweet()
- Mengembalikan berbagai informasi tentang satu Tweet yang ditentukan oleh ID yang diminta.getTweets()
- Mengembalikan berbagai informasi tentang Tweet yang ditentukan oleh ID yang diminta atau daftar ID. searchRecent()
- Titik akhir pencarian terkini menampilkan Tweet dari tujuh hari terakhir yang cocok dengan permintaan pencarian.
searchAll()
- Titik akhir pencarian arsip lengkap mengembalikan riwayat lengkap Tweet publik yang cocok dengan permintaan pencarian; sejak Tweet pertama dibuat 26 Maret 2006.
Catatan: Titik akhir ini hanya tersedia bagi mereka yang disetujui untuk jalur produk Penelitian Akademik.
userTweets()
- Mengembalikan Tweet yang dibuat oleh satu pengguna, ditentukan oleh ID pengguna yang diminta. Secara default, sepuluh Tweet terbaru dikembalikan per permintaan. Dengan menggunakan penomoran halaman, 3.200 Tweet terbaru dapat diambil.userMentions()
- Mengembalikan Tweet yang menyebutkan satu pengguna yang ditentukan oleh ID pengguna yang diminta. Secara default, sepuluh Tweet terbaru dikembalikan per permintaan. Dengan menggunakan penomoran halaman, hingga 800 Tweet terbaru dapat diambil. getStreamRules()
- Menampilkan daftar aturan yang saat ini aktif di titik akhir streaming, baik sebagai daftar atau satu per satu.postStreamRules()
- Tambahkan atau hapus aturan ke aliran Anda.getStream()
- Mengalirkan Tweet secara real-time berdasarkan serangkaian aturan filter tertentu. getSampledStream()
- Mengalirkan sekitar 1% dari seluruh Tweet secara real-time. hideTweet()
- Menyembunyikan atau menampilkan balasan Tweet. countRecent()
- Menerima jumlah Tweet yang cocok dengan kueri dalam 7 hari terakhir
countAll()
- Menerima jumlah Tweet yang cocok dengan kueri
Catatan: Hanya tersedia melalui jalur produk Penelitian Akademik.
Linkify : Mengubah URL, @namapengguna, hashtag menjadi tautan. Tipe $tweet dapat berupa objek, array, atau teks. Dengan mengirimkan objek atau array, metode ini juga akan memperluas tautan (t.co).
Twitter:: linkify ( $ tweet );
Ago : Mengubah tanggal menjadi perbedaan (2 jam yang lalu)
Twitter:: ago ( $ timestamp );
LinkUser : Menghasilkan tautan ke pengguna tertentu, berdasarkan objek penggunanya (seperti $tweet->pengguna), atau id/string.
Twitter:: linkUser ( $ user );
LinkTweet : Menghasilkan tautan ke tweet tertentu.
Twitter:: linkTweet ( $ tweet );
Mengembalikan kumpulan Tweet terbaru yang diposting oleh pengguna yang ditunjukkan oleh parameter screen_name atau user_id.
Route:: get ( ' /userTimeline ' , function ()
{
return Twitter:: getUserTimeline ([ ' screen_name ' => ' thujohn ' , ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Mengembalikan kumpulan Tweet dan retweet terbaru yang diposting oleh pengguna yang mengautentikasi dan pengguna yang mereka ikuti.
Route:: get ( ' /homeTimeline ' , function ()
{
return Twitter:: getHomeTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Mengembalikan X sebutan terbaru (tweet yang berisi @nama_layar) untuk pengguna yang mengautentikasi.
Route:: get ( ' /mentionsTimeline ' , function ()
{
return Twitter:: getMentionsTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Memperbarui status terkini pengguna yang mengautentikasi, juga dikenal sebagai tweeting.
Route:: get ( ' /tweet ' , function ()
{
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' response_format ' => ' json ' ]);
});
Memperbarui status autentikasi pengguna saat ini dengan media.
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 ]);
});
Dapatkan Kredensial Pengguna dengan email.
$credentials = Twitter::getCredentials([
'include_email' => 'true',
]);
Pada contoh di atas, Anda harus meneruskan true sebagai string, bukan sebagai boolean. Boolean akan dikonversi menjadi
1
yang diabaikan Twitter.
Ini juga dengan asumsi Anda telah mengatur izin dengan benar dengan Twitter. Anda harus memilih 'Dapatkan email pengguna' saat menyiapkan aplikasi Twitter Anda, meneruskan nilainya saja tidak akan cukup.
Masuk dengan 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! ' );
}]);
kait web
Agar berhasil menyiapkan webhook, Anda harus mengembalikan hash menggunakan token CRC sebagai respons dari URL webhook Anda (info lebih lanjut).
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
}]);
Dapatkan tweet pengguna:
// ...
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 ));
}
Cari tweet:
// ...
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 ));
}
// ...
Karena Twitter API v2 sedang dalam pengembangan aktif, Anda mungkin perlu memanggil titik akhir yang tidak kami dokumentasikan secara eksplisit di bagian "Fungsi" di atas. Berikut adalah contoh bagaimana Anda dapat menggunakan paket ini untuk melakukan panggilan ke titik akhir yang baru ditambahkan. Di sini kita menggunakan titik akhir "penghitungan terkini" yang baru ditambahkan.
// ...
$ querier = Atymic Twitter Facade Twitter:: forApiV2 ()
-> getQuerier ();
$ result = $ querier
-> withOAuth2Client ()
-> get ( ' tweets/counts/recent ' , [ ' query ' => ' foo ' ]);
// ...
Pertama aktifkan mode debug di file konfigurasi.
Kemudian Anda dapat mengakses metode logs().
try
{
$ response = Twitter:: getUserTimeline ([ ' count ' => 20 , ' response_format ' => ' array ' ]);
}
catch ( Exception $ e )
{
// dd(Twitter::error());
dd (Twitter:: logs ());
}
dd ( $ response );