>本文使用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中文网其他相关文章!