dms / meetup-api-client
基于Guzzle编写的Meetup.com API客户端。此客户端支持所有API操作。
Requires
- php: ^5.3.10 | ^7.0
- guzzle/guzzle: ~3.7
Requires (Dev)
- mathiasgrimm/arraypath: ~1.3
- phpunit/phpunit: ^4.8
- symfony/console: ~2.2
- symfony/css-selector: ~2.2
- symfony/dom-crawler: ~2.2
- symfony/var-dumper: ~2.6
This package is auto-updated.
Last update: 2020-02-14 21:43:48 UTC
README
由于Meetup.com更改了政策,使其API成为付费产品,我认为不能期待像我这样的开源开发者免费为其API维护客户端。
因此,此库将不再更新,v3重写将被放弃。
对不起,希望你们都能找到一个新家来举办聚会,但如果你们留在meetup.com,希望其他库能提供你们所需的功能。
DMS Meetup.com API客户端 
这是由Guzzle项目驱动的Meetup.com API客户端。
安装
该库通过Composer提供,因此获取它很容易。只需运行此命令
composer require dms/meetup-api-client
功能
- 所有Meetup API v3、v2以及遗留v1的文档化和非弃用方法
- Meetup API v3
- Meetup API v2
- Legacy v1,除了标记为弃用的方法
- 密钥认证
- OAuth 1.0认证
- OAuth 2.0认证
- POST、GET和DELETE方法
使用方法
要使用API客户端,只需实例化首选客户端(密钥认证或OAuth),并给出正确的参数
<?php // Key Authentication $client = MeetupKeyAuthClient::factory(array('key' => 'my-meetup-key')); // OAuth Authentication $config = array( 'consumer_key' => 'consumer-key', 'consumer_secret' => '*****', 'token' => '*****', 'token_secret' => '*****', ); $client = MeetupOAuthClient::factory($config); // OAuth2 Authentication $config = array( 'access_token' => 'access_token', ); $client = MeetupOAuth2Client::factory($config);
使用我们的__call
方法调用命令(包含自动完成的phpDocs)
<?php $client = MeetupKeyAuthClient::factory(array('key' => 'my-meetup-key')); // Use our __call method (auto-complete provided) $response = $client->getRsvps(array('event_id' => 'the-event-id')); foreach ($response as $responseItem) { echo $responseItem['member']['name'] . PHP_EOL; }
或使用getCommand
方法
<?php $client = MeetupKeyAuthClient::factory(array('key' => 'my-meetup-key')); //Retrieve the Command from Guzzle $command = $client->getCommand('GetRsvps', array('event_id' => 'the-event-id')); $command->prepare(); $response = $command->execute(); foreach ($response as $responseItem) { echo $responseItem['member']['name'] . PHP_EOL; }
有关所有可用命令的列表,请参阅ReadTheDocs上的Meetup API文档
响应
此包装实现了两种自定义响应类型,以简化结果的使用。
集合响应
当查询集合时,客户端将结果包装在MultiResultResponse
中。此响应实现了一个Iterator
,允许你直接遍历结果,同时仍可访问所有响应数据,以及使用getMetaData()
方法返回的API元数据。
<?php $rsvps = $client->getRsvps(array('event_id' => 'the-event-id')); foreach ($rsvps as $rsvp) { echo $rsvp['member']['name'] . PHP_EOL; } $metadata = $response->getMetaData(); echo "Debug Url:" . $metadata['url'];
单资源响应
当获取单个资源的信息时,客户端将使用SingleResultResponse
包装它。此响应提供了直接访问结果的数组访问,但保留了响应数据,因此你仍然可以访问它。
<?php $rsvp = $client->getRsvp(array('id' => 'rsvp-id')); echo "RSVP? " . $rsvp['response']; echo "StatusCode: " . $rsvp->getStatusCode();
速率限制
此客户端包含一个速率限制器,默认启用,但可以按照以下说明禁用。它使用预定义的因子(默认为50%)来确定何时开始限制调用,通过使用睡眠减速。操作基于X-RateLimit-*
头,以确定剩余限制和重置时间。
配置速率限制启动因子
为了配置后端算法何时启动,您可以设置一个自定义的速率因子
<?php $client = MeetupKeyAuthClient::factory(array( 'key' => 'my-meetup-key', 'rate_limit_factor' => 0.75 ));
禁用速率限制
如果您不想使用速率限制并自行处理API发送的错误,请使用以下配置。
<?php $client = MeetupKeyAuthClient::factory(array( 'key' => 'my-meetup-key', 'disable_rate_limiting' => true ));
许可证
API客户端可在MIT许可证下使用。