mediawiki / oauthclient
PHP OAuth 客户端,用于与运行 OAuth 扩展的 Wikipedia 和其他基于 MediaWiki 的维基百科进行交互
2.2.0
2024-07-19 13:42 UTC
Requires (Dev)
- mediawiki/mediawiki-codesniffer: 43.0.0
- mediawiki/minus-x: 1.1.3
- php-parallel-lint/php-console-highlighter: 1.0.0
- php-parallel-lint/php-parallel-lint: 1.4.0
- phpunit/phpunit: 9.6.16
README
mediawiki/oauthclient
PHP OAuth 客户端,用于与 Wikipedia 和其他运行 OAuth 扩展 的基于 MediaWiki 的维基百科进行交互。
安装
$ composer require mediawiki/oauthclient
使用
有关示例代码,请参阅demo 目录。
通用使用方法如下
-
使用你在维基百科上注册的消费者密钥创建一个新的客户端。设置用户代理是强烈推荐的。
$conf = new ClientConfig( 'https://example.org/w/index.php?title=Special:OAuth' ); $conf->setConsumer( new Consumer( 'e331e186b64a938591e7614170814a75', '9b61abdfa2b88f05670af3919302b12bbc6a6e10' ) ); $conf->setUserAgent( 'MyCoolApp MediaWikiOAuthClient/1.0' ); $client = new Client( $conf );
-
检索认证 URL 和请求令牌
list( $authUrl, $requestToken ) = $client->initiate();
-
将请求令牌存储在某个位置,并将用户发送到认证 URL。
-
当用户从维基百科返回时,他们会到达您的回调 URL,查询字符串将包含一个
oauth_verifier
键。使用此键检索访问令牌$accessToken = $client->complete( $requestToken, $_GET['oauth_verifier'] );
-
一旦您获得了访问令牌,您可以将其存储并使用它向维基百科发送经过身份验证的请求。
获取用户的身份
$ident = $client->identify( $accessToken );
进行任何 API 调用
$userInfo = $client->makeOAuthCall( $accessToken, "https://example.org/w/api.php?action=query&meta=userinfo&uiprop=rights&format=json" );
运行测试
composer install --prefer-dist
composer test
历史记录
此代码是基于 Stype/mwoauth-php 的重构版本,它部分基于 Andy Smith 的 OAuth 库。部分代码来自 wikimedia/slimapp。有关更多详细信息,请参阅 CHANGELOG.md。