sequelone/laravel-vk-geo

解析vk.com api中的国家、地区和城市

v1.0.1 2021-02-24 21:33 UTC

This package is auto-updated.

Last update: 2024-09-25 05:54:35 UTC


README

GitHub license StyleCI

该包提供了一个方便的方法,使用vk.com的API导入国家、地区和城市。

该包使用atehnix/vk-client来执行请求。使用的是**同步请求**,如果您想不断更新数据,请使用包atehnix/laravel-vk-requester

内容

  • 安装
  • 导入数据
  • 使用

安装

您可以使用composer安装此包

composer require sequelone/laravel-vk-geo

然后需要在config/app.php中注册一个新的服务提供者

...
'providers' => [
    ...
     Sequelone\VkGeo\VkGeoServiceProvider::class,
],
...

配置

首先需要在数据库中创建必要的表,使用artisan导入包中的迁移文件

php artisan vendor:publish --provider=Sequelone\VkGeo\VkGeoServiceProvider

同时会创建一个配置文件config/vk-geo.php。然后需要应用迁移

php artisan migrate

在routes/web.php中添加路由。

Route::get('/vkauth', [App\Http\Controllers\VkAccessTokenController::class, 'vkaccesstoken'])->name('vkaccesstoken');

在.env中添加您的vk应用程序的数据

VKONTAKTE_KEY={введите здесь ID Standalone-приложения}
VKONTAKTE_SECRET={здесь защищённый ключ}
VKONTAKTE_REDIRECT_URI={здесь ссылку на страницу https://mysite.com/vkauth}

还可以获取应用程序的API令牌(从哪里获取API令牌?),并在.env中添加

VKONTAKTE_TOKEN={после получения токена со страницы /vkauth скопируйте и вставьте его сюда}

或者在config/vk-geo.php中重写令牌。

导入通过控制台执行。

导入所有国家

php artisan vk:import-countries

导入地区

导入所有国家的地区

php artisan vk:import-regions

也可以按id导入特定国家的地区

php artisan vk:import-regions --countryId=1 --countryId=2

导入城市

导入特定国家的城市

php artisan vk:import-cities --countryId=1 --countryId=2

导入特定地区的城市

php artisan vk:import-cities --regionId=1014032 --regionId=1048584

如果您需要导入所有国家和所有地区,则可以无参数启动命令,但此方法尚未测试,可能会出现与VK服务器响应相关的错误。您也可以创建自己的命令并从原始命令继承,以重写任何控制台命令。

使用

使用此包非常简单。包中包含城市、地区和国家(City、Region、Country)的Eloquent模型。您可以在控制器中调用这些模型

namespace App\Http\Controllers;

use Sequelone\VkGeo\Models\City;

class Controller
{
    protected function show($name){

        $city = City::where('title', $name)->first();

    }
}

每个模型都有titleid,城市有area(区域),也设置了模型之间的关联。如有需要,您也可以重写它们。