erdaldemirci/larasquarev

一个简单且可扩展的基于Guzzle 6的Foursquare API PHP客户端,支持Laravel

0.1.5 2021-07-29 18:45 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:56 UTC


README

Latest Version on Packagist Software License Total Downloads

一个简单且可扩展的Foursquare API PHP客户端,基于Guzzle 7,支持Laravel Facade和ServiceProvider。目前它仅支持无用户端点请求。

安装

通过Composer

$ composer require erdaldemirci/larasquarev

在Laravel中使用

要使用Laravel Facade,您需要将ServiceProvider和Facade类添加到您的config\app.php

'providers' => [
    ...
    Erdaldemirci\Larasquarev\Provider\LarasquareServiceProvider::class,
];

'aliases' => [
    ...
    'Larasquarev' => Erdaldemirci\Larasquarev\Facade\Larasquare::class
];

您需要在config\services.php中添加您的Foursquare客户端ID和密钥

'foursquare' => [
    'clientId'.    => YOUR_FOURSQUARE_CLIENT_ID,
    'clientSecret' => YOUR_FOURSQUARE_CLIENT_SECRET
    'version'      => 20200101, //example
    'intent'       => 'global', //global or null
]

之后,您可以直接使用Laravel Facade

$venues = Larasquare::venues($searchQuery);

标准用法

$config = [
    clientId = YOUR_FOURSQUARE_CLIENT_ID,
    clientSecretT = YOUR_FOURSQUARE_CLIENT_SECRET,
    apiUrl = FOURSQUARE_API_URL, //optional
    version = SUPPORTED_VERSION, //optional, format: YYYYMMDD
];

$foursquare = new Foursquare($config);

$venues = $foursquare->venues($searchQuery);

查询过滤器

如果您需要生成、过滤或转换您的搜索查询,您可以将所有逻辑提取到一个单独的类中,该类实现Erdaldemirci\Larasquarev\Filter\FilterContract,然后通过setFilter()方法注入。

$venues = Larasquare::setFilter(new MyFilter())->venues();

将您的过滤器逻辑放在parse()方法中。它将自动接收到在搜索方法中传递的查询。您可以覆盖值、从您自定义的数组中生成值或您需要的任何内容。返回的数组将与Foursquare请求一起发送。

/**
* Generate, transform or filter your search query
*
* @param $query
* @return array
*/
public function parse($query = [])
{
    return [
        'll' => $query['location']['lat'] . ',' . $query['location']['lon'],
        'query' => $query['searchTerm'],
        'near' => $_GET['nearLocation'],
        'radius' => 200
    ];
}

方法

** 此库未涵盖的端点 ** 您可以使用request方法查询Foursquare端点。

// get venue photos
$response = Larasquare::request("venues/$venueId/photos")

// get details about a tip,
$response = Larasquare::request("tips/$tipId")

** 搜索场所 **

//Laravel
$venues = Larasquare::venues($query);

** 获取单个场所 **

$venues = Larasquare::venue($venueId);

** 其他场所方法 **

// get suggestion @see https://developer.foursquare.com/docs/venues/suggestcompletion
$venues = Larasquare::suggest($searchQuery);

// get trending @see https://developer.foursquare.com/docs/venues/trending
$venues = Larasquare::trending($searchQuery);

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件

分支自: https://github.com/iivannov/larasquare