>本文使用PHP HTTP客戶端Guzzle進行探索,以與需要OAuth身份驗證的API進行交互,特別關注Twitter的API。 Guzzle通過提供自己的OAuth訂戶來簡化OAuth的實現,從而消除了需要手動處理複雜身份驗證工作流程的需求。
密鑰點:
oauth-subscriber
涵蓋了Twitter的1腿和3腿的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 } }
>此示例演示了一種1腿的OAuth方法,適用於不需要用戶特定授權的情況。 切記用實際的Twitter API鍵和令牌代替佔位符。 composer update
>
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使用guzzle與Twitter的詳細內容。更多資訊請關注PHP中文網其他相關文章!