この記事では、PHP HTTPクライアントであるGuzzleを使用して、OAuth認証を必要とするAPIを使用して、特にTwitterのAPIに焦点を当てたAPIを使用して検討しています。 Guzzleは、独自のOAuthサブスクライバーを提供し、複雑な認証ワークフローの手動処理の必要性を排除することにより、OAuthの実装を簡素化します。
シームレスなTwitter APIインタラクションのために、Guzzleとの簡略化されたOAuth統合。
oauth-subscriber
ファイルには以下を含める必要があります
run
必要なパッケージをインストールします。
単純化されたコードの例(1脚OAuth): 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 } }
composer update
3脚の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にリダイレクトします。
アクセストークン:以上がOauth経由でTwitterでGuzzleを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。