Artikel ini meneroka menggunakan Guzzle, klien HTTP PHP, untuk berinteraksi dengan API yang memerlukan pengesahan OAuth, khususnya memberi tumpuan kepada API Twitter. Guzzle memudahkan pelaksanaan OAuth dengan menyediakan pelanggan OAuth sendiri, menghapuskan keperluan pengendalian manual aliran kerja pengesahan kompleks.
Mata utama:
oauth-subscriber
Kelebihan OAuth Guzzle:
Membina fungsi oauth dari awal adalah kompleks. Pelanggan OAuth terbina dalam Guzzle menyelaraskan proses ini. Perhatikan bahawa Guzzle 4.x (atau lebih tinggi) diperlukan; PHP 5.3 tidak lagi disokong. Komposer memudahkan pengurusan ketergantungan.
Menyediakan dengan komposer:
fail hendaklah termasuk: composer.json
{ "name": "johndoe/guzzle-twitter", "description": "PoC for Sitepoint article", "authors": [ { "name": "John Doe", "email": "john.doe@gmail.tst" } ], "minimum-stability": "dev", "require": { "guzzlehttp/guzzle": "6.*", //Updated to Guzzle 6.x "guzzlehttp/log-subscriber": "^1.0", //Updated to use caret for versioning "monolog/monolog": "^2.0", //Updated to use caret for versioning "guzzlehttp/oauth-subscriber": "^1.0" //Updated to use caret for versioning } }
untuk memasang pakej yang diperlukan. composer update
Contoh kod yang dipermudahkan (1):
Contoh ini menunjukkan pendekatan OAuth berkaki 1, sesuai untuk situasi di mana kebenaran khusus pengguna tidak diperlukan. Ingatlah untuk menggantikan ruang letak dengan kunci dan token API Twitter sebenar anda.
OAuth 3-Legged (Pengguna Pengguna):
<?php require 'vendor/autoload.php'; use GuzzleHttp\Client; use GuzzleHttp\Subscriber\Oauth\Oauth1; use GuzzleHttp\Subscriber\Log\LogSubscriber; use GuzzleHttp\Subscriber\Log\Formatter; use Monolog\Logger; use Monolog\Handler\StreamHandler; date_default_timezone_set('America/Phoenix'); $log = new Logger('guzzle'); $log->pushHandler(new StreamHandler('guzzle.log')); $subscriber = new LogSubscriber($log, Formatter::SHORT); $client = new Client(['base_uri' => 'https://api.twitter.com/', 'defaults' => ['auth' => 'oauth']]); $oauth = new Oauth1([ 'consumer_key' => '[your_consumer_key]', 'consumer_secret' => '[your_consumer_secret]', 'token' => '[your_access_token]', 'token_secret' => '[your_access_token_secret]' ]); $client->getEmitter()->attach($oauth); $client->getEmitter()->attach($subscriber); $res = $client->get('1.1/statuses/home_timeline.json')->json(); print_r($res); ?>
Untuk OAuth berkaki 3, yang memerlukan kebenaran pengguna, prosesnya melibatkan pelbagai langkah:
permintaan token:
Kesimpulan:
Guzzle dengan ketara memudahkan integrasi OAuth dengan API seperti Twitter. Pilihan antara OAuth berkaki 1 dan berkaki 3 bergantung kepada keperluan aplikasi anda. Ingatlah untuk sentiasa mengendalikan pertimbangan keselamatan dengan teliti, terutamanya apabila berurusan dengan kelayakan pengguna. Artikel asal menyediakan contoh kod lengkap pada GitHub.
Atas ialah kandungan terperinci Menggunakan Guzzle dengan Twitter melalui OAuth. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!