Yii2中如何集成短链接服务

发布时间:2024-11-17 08:23:09 作者:小樊
来源:亿速云 阅读:81

在 Yii2 中集成短链接服务,您可以使用第三方服务,例如 bit.ly、TinyURL 或 Rebrandly 等。这里以 bit.ly 为例,说明如何集成短链接服务。

  1. 首先,您需要注册一个 bit.ly 账户并获取 API 密钥。访问 https://bitly.com/ 并注册一个帐户。登录后,进入您的账户设置,找到 API 密钥(Access Token)。

  2. 在 Yii2 项目中创建一个新的控制器,例如 UrlShortenerController。在命令行中运行以下命令:

php yii generate controller UrlShortener
  1. 打开 UrlShortenerController.php 文件,编写一个 action 来处理短链接的生成。例如:
<?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]);
    }
}

在这个示例中,我们使用了 GuzzleHttp 客户端库来发送请求到 bit.ly API。请确保在 composer.json 文件中添加 GuzzleHttp 依赖:

{
    "require": {
        "guzzlehttp/guzzle": "^7.0"
    }
}

然后运行 composer update 命令以安装依赖。

  1. config/web.php 文件中添加一个新的路由,以便访问短链接生成器控制器:
<?php

$config = [
    // ...
    'components' => [
        // ...
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                'url-shortener' => 'url-shortener/create',
                // ...
            ],
        ],
    ],
];

return $config;

现在,您可以通过访问 /url-shortener 路径来生成短链接。例如,在浏览器中输入 http://yourdomain.com/url-shortener?url=https://www.example.com,您将看到生成的短链接。

推荐阅读:
  1. Yii 和 Yaf 框架有哪些区别
  2. 选择yii框架的原因

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

yii框架

上一篇:final类与PHP的自动加载机制如何协同工作

下一篇:Yii中如何管理应用插件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》