dms/meetup-api-client

此包已被废弃且不再维护。未建议替代包。

基于Guzzle编写的Meetup.com API客户端。此客户端支持所有API操作。

v2.4.0 2019-09-01 08:23 UTC

README

由于Meetup.com更改了政策,使其API成为付费产品,我认为不能期待像我这样的开源开发者免费为其API维护客户端。

因此,此库将不再更新,v3重写将被放弃。

对不起,希望你们都能找到一个新家来举办聚会,但如果你们留在meetup.com,希望其他库能提供你们所需的功能。

DMS Meetup.com API客户端 Build Status

这是由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许可证下使用。