sequelone / laravel-vk-geo
解析vk.com api中的国家、地区和城市
v1.0.1
2021-02-24 21:33 UTC
Requires
- php: >=7.2
- atehnix/vk-client: ^1.4
- laravel/framework: ~5.2.0|~5.3.0|~5.4.0|~5.5.0|~5.6.0|~5.7.0|~5.8.0|^8.12
README
该包提供了一个方便的方法,使用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(); } }
每个模型都有title
、id
,城市有area
(区域),也设置了模型之间的关联。如有需要,您也可以重写它们。