ホームページ >バックエンド開発 >PHPチュートリアル >PHPを介してSina APIを呼び出して短いリンクを生成する方法

PHPを介してSina APIを呼び出して短いリンクを生成する方法

jacklove
jackloveオリジナル
2018-06-08 17:32:083032ブラウズ

Sina は、長いリンクを短いリンクに変換するための API を提供しており、長いリンクを t.cn/xxx 形式の短いリンクに変換できます。

API:
http://api.t.sina.com.cn/short_url/shorten.json (返される結果は JSON 形式です)
http://api.t.sina.com.cn/short_url/shorten.xml (返される結果は XML 形式です)

リクエストパラメータ:
source アプリケーションの申請時に割り当てられる AppKey は、インターフェイスを呼び出す際のアプリケーションの一意の ID を表します。
url_long 変換する必要がある長いリンクは、最大 20 まで URL エンコードする必要があります。

次のメソッドを使用して複数の URL パラメータをリクエストする必要があります: url_long=aaa&url_long=bbb

ソース メソッドを作成する
1. http://open.weibo.com/ と入力し、メニュー [マイクロ接続] -> [ウェブサイト アクセス] を選択します。
2. クリックして今すぐアクセスし、新しいアプリケーションを作成し、アプリケーション名を入力して、[作成] をクリックします。
3. 作成が成功すると、AppKey はソース パラメーターの値となり、短いリンクの作成を要求するために使用できます。
テスト コード:

<?php$api = &#39;http://api.t.sina.com.cn/short_url/shorten.json&#39;; // json// $api = &#39;http://api.t.sina.com.cn/short_url/shorten.xml&#39;; // xml$source = &#39;您申请的AppKey&#39;;$url_long = &#39;http://blog.csdn.net/fdipzone&#39;;$request_url = sprintf($api.&#39;?source=%s&url_long=%s&#39;, $source, $url_long);$data = file_get_contents($request_url);echo $data;?>

JSON 形式に戻る

[
    {
        "url_short": "http:\/\/t.cn\/RyVmU5i",
        "url_long": "http:\/\/blog.csdn.net\/fdipzone",
        "type": 0
    }
]

XML 形式に戻る

<?xml version="1.0" encoding="UTF-8"?><urls>
    <url>
        <url_short>http://t.cn/RyVmU5i</url_short>
        <url_long>http://blog.csdn.net/fdipzone</url_long>
        <type>0</type>
    </url></urls>

生成されたショートリンクは http://t.cn/RyVmU5i で、アクセスは http://blog.csdn.net/fdipzone にジャンプします
完全な呼び出し方法は次のとおりです:

<?php/**
 * 调用新浪接口将长链接转为短链接
 * @param  string        $source    申请应用的AppKey
 * @param  array|string  $url_long  长链接,支持多个转换(需要先执行urlencode)
 * @return array
 */function getSinaShortUrl($source, $url_long){

    // 参数检查
    if(empty($source) || !$url_long){        return false;
    }    // 参数处理,字符串转为数组
    if(!is_array($url_long)){        $url_long = array($url_long);
    }    // 拼接url_long参数请求格式
    $url_param = array_map(function($value){
        return &#39;&url_long=&#39;.urlencode($value);
    }, $url_long);    $url_param = implode(&#39;&#39;, $url_param); 

    // 新浪生成短链接接口
    $api = &#39;http://api.t.sina.com.cn/short_url/shorten.json&#39;;    // 请求url
    $request_url = sprintf($api.&#39;?source=%s%s&#39;, $source, $url_param);    $result = array();    // 执行请求
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $request_url);    $data = curl_exec($ch);    if($error=curl_errno($ch)){        return false;
    }
    curl_close($ch);    $result = json_decode($data, true);    return $result;

}// AppKey$source = &#39;您申请的AppKey&#39;;// 单个链接转换$url_long = &#39;http://blog.csdn.net/fdipzone&#39;;$data = getSinaShortUrl($source, $url_long);
print_r($data);// 多个链接转换$url_long = array(    &#39;http://blog.csdn.net/fdipzone/article/details/46390573&#39;,    &#39;http://blog.csdn.net/fdipzone/article/details/12180523&#39;,    &#39;http://blog.csdn.net/fdipzone/article/details/9316385&#39;);$data = getSinaShortUrl($source, $url_long);
print_r($data);?>

出力:

Array(
    [0] => Array
        (
            [url_short] => http://t.cn/RyVmU5i
            [url_long] => http://blog.csdn.net/fdipzone
            [type] => 0
        )

)Array(
    [0] => Array
        (
            [url_short] => http://t.cn/R4qB08y
            [url_long] => http://blog.csdn.net/fdipzone/article/details/46390573
            [type] => 0
        )

    [1] => Array
        (
            [url_short] => http://t.cn/RGgNanY
            [url_long] => http://blog.csdn.net/fdipzone/article/details/12180523
            [type] => 0
        )

    [2] => Array
        (
            [url_short] => http://t.cn/R7TrNWZ
            [url_long] => http://blog.csdn.net/fdipzone/article/details/9316385
            [type] => 0
        )

)

この記事では、php を通じて Sina API を呼び出して短いリンクを生成する方法について説明します。関連コンテンツの詳細については、php 中国語 Web サイトを参照してください。

関連する推奨事項:

mysql グループ内でグループごとに並べ替える方法を説明します

php を使用して API を反映する方法クラス情報の取得

mysql クエリ中にパフォーマンスに影響を与える過剰なオフセットの理由と最適化方法の詳細な説明

以上がPHPを介してSina APIを呼び出して短いリンクを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。