Maison  >  Article  >  développement back-end  >  Comment appeler l'API Sina pour générer un lien court via php

Comment appeler l'API Sina pour générer un lien court via php

jacklove
jackloveoriginal
2018-06-08 17:32:082938parcourir

Sina fournit une API pour convertir des liens longs en liens courts, qui peut convertir des liens longs en liens courts au format t.cn/xxx.

API :
http://api.t.sina.com.cn/short_url/shorten.json (le résultat renvoyé est au format JSON)
http://api.t.sina.com.cn/short_url/shorten.xml (le résultat renvoyé est au format XML)

Paramètres de la requête :
source L'AppKey attribuée lors de la candidature à une candidature représente l'identité unique de l'application lors de l'appel de l'interface.
url_long Les liens longs qui doivent être convertis doivent être codés en URL, avec un maximum de 20.

Plusieurs paramètres d'URL doivent être demandés de la manière suivante : url_long=aaa&url_long=bbb

Créer une méthode source
1. Entrez http://open.weibo.com/ et sélectionnez le menu Micro Connection->Accès au site Web.
2. Cliquez pour accéder maintenant, créez une nouvelle application, remplissez le nom de l'application avec désinvolture et cliquez sur Créer.
3. Une fois la création réussie, AppKey est la valeur du paramètre source, qui peut être utilisée pour demander la création d'un lien court.
Code de test :

<?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;?>

Format JSON de retour

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

Format XML de retour

<?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>

Le lien court généré est http://t.cn/RyVmU5i, et l'accès passera à http://blog.csdn.net/fdipzone
La méthode d'appel complète est la suivante :

<?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);?>

Sortie :

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
        )

)

Cet article explique comment générer des liens courts en appelant l'API Sina via php. Pour plus de contenu connexe, veuillez faire attention à php. Site chinois.

Recommandations associées :

Expliquez la méthode de tri dans MySQL groupe par groupe

Comment utiliser php pour refléter l'API pour obtenir une classe informations

Explication détaillée des raisons et des méthodes d'optimisation d'un décalage excessif affectant les performances lors d'une requête MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn