mediawiki/oauthclient

PHP OAuth 客户端,用于与运行 OAuth 扩展的 Wikipedia 和其他基于 MediaWiki 的维基百科进行交互

2.2.0 2024-07-19 13:42 UTC

This package is auto-updated.

Last update: 2024-09-12 06:06:05 UTC


README

Latest Stable Version License

mediawiki/oauthclient

PHP OAuth 客户端,用于与 Wikipedia 和其他运行 OAuth 扩展 的基于 MediaWiki 的维基百科进行交互。

安装

$ composer require mediawiki/oauthclient

使用

有关示例代码,请参阅demo 目录。

通用使用方法如下

  1. 使用你在维基百科上注册的消费者密钥创建一个新的客户端。设置用户代理是强烈推荐的。

    $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 );
    
  2. 检索认证 URL 和请求令牌

    list( $authUrl, $requestToken ) = $client->initiate();
    
  3. 将请求令牌存储在某个位置,并将用户发送到认证 URL。

  4. 当用户从维基百科返回时,他们会到达您的回调 URL,查询字符串将包含一个 oauth_verifier 键。使用此键检索访问令牌

    $accessToken = $client->complete( $requestToken,  $_GET['oauth_verifier'] );
    
  5. 一旦您获得了访问令牌,您可以将其存储并使用它向维基百科发送经过身份验证的请求。

    获取用户的身份

    $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。