Rumah > pembangunan bahagian belakang > tutorial php > Menggunakan Guzzle dengan Twitter melalui OAuth

Menggunakan Guzzle dengan Twitter melalui OAuth

Christopher Nolan
Lepaskan: 2025-02-20 09:24:12
asal
881 orang telah melayarinya

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.

Using Guzzle with Twitter via Oauth

Mata utama:

    Integrasi OAuth yang dipermudahkan dengan Guzzle untuk interaksi API Twitter lancar.
  • memerlukan Php 5.4 atau lebih tinggi dan komposer untuk pengurusan ketergantungan, termasuk
  • . oauth-subscriber
  • Pengesahan dan pembalakan yang cekap dicapai dengan melampirkan pelanggan OAuth dan log kepada pelanggan Guzzle.
  • Meliputi proses OAuth berkaki 1 dan berkaki 3 untuk Twitter, menawarkan fleksibiliti berdasarkan keperluan aplikasi.

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
    }
}
Salin selepas log masuk
run

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);
?>
Salin selepas log masuk

Untuk OAuth berkaki 3, yang memerlukan kebenaran pengguna, prosesnya melibatkan pelbagai langkah:

permintaan token:
    Dapatkan permintaan token.
  1. Pengguna Pengguna:
  2. mengalihkan pengguna ke Twitter untuk kebenaran.
  3. Token akses:
  4. Selepas kebenaran, dapatkan token akses.
  5. Panggilan API:
  6. Buat panggilan API menggunakan token akses.
  7. Kod untuk proses ini lebih terlibat dan memerlukan pengendalian panggilan balik dan pengurusan sesi (ditinggalkan untuk keringkasan, tetapi artikel asal menyediakan pelaksanaan terperinci).

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan