Bitly 是创建短链接的好工具,在这篇文章中,我们将使用他们的 API 使用 PHP 动态生成链接。

首先,您需要一个令牌才能访问https://app.bitly.com/settings/api/输入您的密码以生成访问令牌。记下访问令牌。

创建一个名为 link.php 的类,这将是我们创建链接的方式。

输入您的访问令牌。

此类将保存生成的令牌和链接。

class link
{
    private string $token = 'your-token-here';
    public string $link = '';

创建构造方法并传入 $url、$campaignName、$source 和 $medium

您可能希望将这些设置为可选,但假设我们总是希望在链接上使用 UTM 标签以进行更好的跟踪。 

该链接将始终包含 utm_source、utm_medium 和 utm_campaign

public function __construct(string $url, string $campaignName, string $source, string $medium)
{
    $source       = urlencode($source);
    $medium       = urlencode($medium);
    $campaignName = urlencode($campaignName);
    $url          = $url."?utm_source=$source&utm_medium=$medium&utm_campaign=$campaignName";

    $this->link = $this->createLink($url);
}

我们需要一个链接来从类中返回链接

public function getLink()
{
    return $this->link;
}

最后一种方法是使用 curl api 发送请求。

设置 $apiurl,然后初始化 curl,设置要发布到 Bitly 的令牌标头和选项,

最后只返回短链接,如果你想要比短链接更多的信息,你可能想要返回完整的响应。

private function createLink($url)
{
    $apiurl = "https://api-ssl.bitly.com/v4/bitlinks";

    $curl = curl_init($apiurl);
    curl_setopt($curl, CURLOPT_URL, $apiurl);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    $headers = [
        "Content-Type: application/json",
        "Authorization: Bearer $this->token",
    ];

    $fields = [
        "domain"   => "bit.ly",
        "long_url" => $url
    ];

    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($fields));
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

    $resp = curl_exec($curl);
    curl_close($curl);

    return json_decode($resp, true)['link'];
}

把它们放在一起:

<?php

class link
{
    private string $token = 'your-token-here';
    public string $link = '';

    public function __construct(string $url, string $campaignName, string $source, string $medium)
    {
        $source       = urlencode($source);
        $medium       = urlencode($medium);
        $campaignName = urlencode($campaignName);
        $url          = $url."?utm_source=$source&utm_medium=$medium&utm_campaign=$campaignName";

        $this->link = $this->createLink($url);
    }

    public function getLink()
    {
        return $this->link;
    }

    private function createLink($url)
    {
        $apiurl = "https://api-ssl.bitly.com/v4/bitlinks";

        $curl = curl_init($apiurl);
        curl_setopt($curl, CURLOPT_URL, $apiurl);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

        $headers = [
            "Content-Type: application/json",
            "Authorization: Bearer $this->token",
        ];

        $fields = [
            "domain"   => "bit.ly",
            "long_url" => $url
        ];

        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($fields));
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

        $resp = curl_exec($curl);
        curl_close($curl);

        return json_decode($resp, true)['link'];
    }
}

用法

要创建新链接,请创建链接类的新实例,传入您的选项,然后调用 ->getLink() 以获取短链接。

$url = 'https://example.com/post/some-post';
$campaignName = 'marketing-run';
$source = 'Twitter';
$medium = 'Tweet';

$link = new link($url, $campaignName, $source, $medium);
$shortUrl = $link->getLink();

当您运行时,您将获得短链接,您可以在 bitley 仪表板中看到您的链接和统计信息,包括 utm 标签。

你可以使用这个类来自动化短链接,例如可以自动为每个新的博客文章创建一个短链接。 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。