您好,登錄后才能下訂單哦!
在 Yii2 中集成短鏈接服務(wù),您可以使用第三方服務(wù),例如 bit.ly、TinyURL 或 Rebrandly 等。這里以 bit.ly 為例,說(shuō)明如何集成短鏈接服務(wù)。
首先,您需要注冊(cè)一個(gè) bit.ly 賬戶并獲取 API 密鑰。訪問(wèn) https://bitly.com/ 并注冊(cè)一個(gè)帳戶。登錄后,進(jìn)入您的賬戶設(shè)置,找到 API 密鑰(Access Token)。
在 Yii2 項(xiàng)目中創(chuàng)建一個(gè)新的控制器,例如 UrlShortenerController
。在命令行中運(yùn)行以下命令:
php yii generate controller UrlShortener
UrlShortenerController.php
文件,編寫一個(gè) action 來(lái)處理短鏈接的生成。例如:<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use GuzzleHttp\Client;
class UrlShortenerController extends Controller
{
public function actionCreate()
{
$url = Yii::$app->request->post('url');
if (!$url) {
return $this->asJson(['error' => 'URL is required.']);
}
$client = new Client([
'base_uri' => 'https://api-ssl.bitly.com',
'timeout' => 2.0,
]);
$response = $client->post('/v4/shorten', [
'headers' => [
'Authorization' => 'Bearer ' . Yii::$app->params['bitlyApiKey'],
'Content-Type' => 'application/json',
],
'json' => [
'long_url' => $url,
],
]);
$shortUrl = json_decode($response->getBody(), true)['link'];
return $this->asJson(['shortUrl' => $shortUrl]);
}
}
在這個(gè)示例中,我們使用了 GuzzleHttp 客戶端庫(kù)來(lái)發(fā)送請(qǐng)求到 bit.ly API。請(qǐng)確保在 composer.json
文件中添加 GuzzleHttp 依賴:
{
"require": {
"guzzlehttp/guzzle": "^7.0"
}
}
然后運(yùn)行 composer update
命令以安裝依賴。
config/web.php
文件中添加一個(gè)新的路由,以便訪問(wèn)短鏈接生成器控制器:<?php
$config = [
// ...
'components' => [
// ...
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'url-shortener' => 'url-shortener/create',
// ...
],
],
],
];
return $config;
現(xiàn)在,您可以通過(guò)訪問(wèn) /url-shortener
路徑來(lái)生成短鏈接。例如,在瀏覽器中輸入 http://yourdomain.com/url-shortener?url=https://www.example.com
,您將看到生成的短鏈接。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。