ホームページ > バックエンド開発 > PHPチュートリアル > Oauth経由でTwitterでGuzzleを使用します

Oauth経由でTwitterでGuzzleを使用します

Christopher Nolan
リリース: 2025-02-20 09:24:12
オリジナル
881 人が閲覧しました

この記事では、PHP HTTPクライアントであるGuzzleを使用して、OAuth認証を必要とするAPIを使用して、特にTwitterのAPIに焦点を当てたAPIを使用して検討しています。 Guzzleは、独自のOAuthサブスクライバーを提供し、複雑な認証ワークフローの手動処理の必要性を排除することにより、OAuthの実装を簡素化します。

Using Guzzle with Twitter via Oauth

キーポイント:

シームレスなTwitter APIインタラクションのために、Guzzleとの簡略化されたOAuth統合。

  • OAUTHおよびログサブスクライバーをGuzzleクライアントに添付することにより、効率的な認証とロギングが達成されます。
  • Twitter用の1脚と3本足のOAuthプロセスの両方をカバーし、アプリケーションのニーズに基づいて柔軟性を提供します。
  • oauth-subscriber
  • GuzzleのOAuth Advantage:
  • ゼロからOAuth機能を構築することは複雑です。 Guzzleの組み込みのOAUTHサブスクライバーがこのプロセスを合理化します。 Guzzle 4.x(またはそれ以上)が必要であることに注意してください。 PHP 5.3はサポートされなくなりました。 Composerは依存関係管理を簡素化します
作曲家とのセットアップ:

ファイルには以下を含める必要があります

run

必要なパッケージをインストールします。

単純化されたコードの例(1脚OAuth):

composer.json

この例は、ユーザー固有の承認が必要ない状況に適した1本のOAUTHアプローチを示しています。 プレースホルダーを実際のTwitter APIキーとトークンに置き換えることを忘れないでください。
{
    "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
    }
}
ログイン後にコピー

composer update3脚のoauth(ユーザー承認):

ユーザー承認が必要な3本足のOAuthの場合、プロセスには複数の手順が含まれます。

リクエストトークン:

リクエストトークンを取得します。
<?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);
?>
ログイン後にコピー

ユーザー承認:承認のためにユーザーをTwitterにリダイレクトします。

アクセストークン:
    承認後、アクセストークンを取得します。
  1. API呼び出し:
  2. アクセストークンを使用してAPI呼び出しを行います。
  3. このプロセスのコードはより複雑であり、コールバックとセッション管理の処理が必要です(簡潔にして省略されていますが、元の記事は詳細な実装を提供します)。
  4. 結論:
  5. Guzzleは、TwitterのようなAPIとのOAuthの統合を大幅に簡素化します。 1本足と3本足のOAuthの選択は、アプリケーションの要件に依存します。 特にユーザーの資格情報を扱う場合は、常にセキュリティの考慮事項を注意深く処理することを忘れないでください。 元の記事では、GitHubの完全なコード例を示しています

以上がOauth経由でTwitterでGuzzleを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート