Heim >Backend-Entwicklung >PHP-Tutorial >Verwenden Sie Guzzle mit Twitter über OAuth
Dieser Artikel untersucht mithilfe von Guzzle, einem PHP -HTTP -Client, um mit APIs zu interagieren, die eine OAuth -Authentifizierung erfordern und sich speziell auf die API von Twitter konzentrieren. Guzzle vereinfacht die OAuth -Implementierung durch Bereitstellung eines eigenen OAuth -Abonnenten und beseitigt die Notwendigkeit des manuellen Umgangs mit komplexen Authentifizierungs -Workflows.
Schlüsselpunkte:
oauth-subscriber
. guzzle oAuth vorteil:
Die Erstellung von OAuth -Funktionen von Grund auf ist komplex. Der integrierte OAuth-Abonnent von Guzzle rationalisiert diesen Prozess. Beachten Sie, dass Guzzle 4.x (oder höher) erforderlich ist; PHP 5.3 wird nicht mehr unterstützt. Der Komponist vereinfacht das Abhängigkeitsmanagement.
Einrichten mit Komponist:
Die composer.json
Datei sollte enthalten:
<code class="language-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 } }</code>
Ausführen composer update
, um die erforderlichen Pakete zu installieren.
vereinfachtes Codebeispiel (1-legierte OAuth):
Dieses Beispiel zeigt einen 1-legierten OAuth-Ansatz, der für Situationen geeignet ist, in denen die benutzerspezifische Autorisierung nicht erforderlich ist. Denken Sie daran, Platzhalter durch Ihre tatsächlichen Twitter -API -Schlüssel und -Teken zu ersetzen.
<code class="language-php"><?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); ?></code>
3-legierte OAuth (Benutzerberechtigung):
für 3-legierte OAuth, für die die Benutzergenehmigung erforderlich ist, beinhaltet der Prozess mehrere Schritte:
Der Code für diesen Prozess ist mehr involviert und erfordert die Handhabung von Rückrufen und Sitzungsmanagement (für die Kürze weggelassen, aber der ursprüngliche Artikel enthält eine detaillierte Implementierung).
Schlussfolgerung:
Guzzle vereinfacht die OAuth -Integration mit APIs wie Twitter erheblich. Die Wahl zwischen 1-beinigen und 3-beinigen OAuth hängt von den Anforderungen Ihrer Anwendung ab. Denken Sie daran, immer sorgfältige Sicherheitsüberlegungen zu bewältigen, insbesondere wenn Sie sich mit Benutzeranmeldeinformationen befassen. Der ursprüngliche Artikel enthält vollständige Codebeispiele zu GitHub.
Das obige ist der detaillierte Inhalt vonVerwenden Sie Guzzle mit Twitter über OAuth. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!