使用PHP寫(xiě)api接口是經(jīng)常做的,PHP寫(xiě)好接口后,前臺(tái)就可以通過(guò)鏈接獲取接口提供的數(shù)據(jù),而返回的數(shù)據(jù)一般分為兩種情況,xml和json,在這個(gè)過(guò)程中,服務(wù)器并不知道,請(qǐng)求的來(lái)源是什么,有可能是別人非法調(diào)用我們的接口,獲取數(shù)據(jù),因此就要使用安全驗(yàn)證
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的通江網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
原理
從圖中可以看得很清楚,前臺(tái)想要調(diào)用接口,需要使用幾個(gè)參數(shù)生成簽名。
時(shí)間戳:當(dāng)前時(shí)間
隨機(jī)數(shù):隨機(jī)生成的隨機(jī)數(shù)
口令:前后臺(tái)開(kāi)發(fā)時(shí),一個(gè)雙方都知道的標(biāo)識(shí),相當(dāng)于暗號(hào)
算法規(guī)則:商定好的運(yùn)算規(guī)則,上面三個(gè)參數(shù)可以利用算法規(guī)則生成一個(gè)簽名。前臺(tái)生成一個(gè)簽名,當(dāng)需要訪問(wèn)接口的時(shí)候,把時(shí)間戳,隨機(jī)數(shù),簽名通過(guò)URL傳遞到后臺(tái)。后臺(tái)拿到時(shí)間戳,隨機(jī)數(shù)后,通過(guò)一樣的算法規(guī)則計(jì)算出簽名,然后和傳遞過(guò)來(lái)的簽名進(jìn)行對(duì)比,一樣的話(huà),返回?cái)?shù)據(jù)。
算法規(guī)則
在前后臺(tái)交互中,算法規(guī)則是非常重要的,前后臺(tái)都要通過(guò)算法規(guī)則計(jì)算出簽名,至于規(guī)則怎么制定,看你怎么高興怎么來(lái)。
我這個(gè)算法規(guī)則是
時(shí)間戳,隨機(jī)數(shù),口令按照首字母大小寫(xiě)順序排序
然后拼接成字符串
進(jìn)行sha1加密
再進(jìn)行MD5加密
轉(zhuǎn)換成大寫(xiě)。
他會(huì)提供相應(yīng)接口給你的,具體調(diào)用方法就相當(dāng)于講求某個(gè)鏈接。act=get_user_listtype=json在這里operate.php相當(dāng)于一個(gè)接口,其中g(shù)et_user_list 是一個(gè)API(獲取用戶(hù)列表),講求返回的數(shù)據(jù)類(lèi)型為JSON格式。act=get_user_listtype=json';$ch = curl_init ();curl_setopt ( $ch, CURLOPT_URL, $url );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );curl_setopt ( $ch, CURLOPT_POST, 1 ); //啟用POST提交$file_contents = curl_exec ( $ch );curl_close ( $ch );
新浪短網(wǎng)址api是新浪官方對(duì)外公開(kāi)的短網(wǎng)址生成接口,可以將冗長(zhǎng)的鏈接地址縮短生成 t.cn 格式的短鏈接,下面分享一個(gè)獲取新浪短網(wǎng)址API接口的方法以及接口請(qǐng)求方法。
1、在線(xiàn)使用
將API地址中?"" ? 的部分換成自己的長(zhǎng)網(wǎng)址,然后復(fù)制前往瀏覽器中粘貼打開(kāi)就能生成了。
2、請(qǐng)求接口
如果嫌在線(xiàn)生成的流程很麻煩,可以將API接口對(duì)接到程序中請(qǐng)求生成,請(qǐng)求示例如下。
PHP請(qǐng)求示例:
Java請(qǐng)求示例:
Python請(qǐng)求示例:
1、調(diào)用API接口時(shí),只需將 “”換成需要縮短的長(zhǎng)鏈接即可。
2、接口支持鏈接中帶參數(shù),但要注意的是當(dāng)鏈接中出現(xiàn) 符號(hào)時(shí),請(qǐng)用 %26 代替(或者使用url編碼),否則參數(shù)可能會(huì)丟失。
3、更換鏈接時(shí),必須要以http(s)://開(kāi)頭,否則可能會(huì)導(dǎo)致短網(wǎng)址生成失敗或者生成的短網(wǎng)址無(wú)法跳轉(zhuǎn)訪問(wèn)原網(wǎng)站。
4、上文提到的新浪短網(wǎng)址API接口,經(jīng)測(cè)試都是比較穩(wěn)定的,覺(jué)得好用記得收藏一下,以免丟失。
1、長(zhǎng)鏈接轉(zhuǎn)換后,為什么結(jié)尾的參數(shù)丟失了?
答:因?yàn)殚L(zhǎng)鏈接中含有特殊字符,需要將url編碼后再使用接口生成。
2、接口沒(méi)有返回結(jié)果,是什么情況?
答:有些時(shí)候接口返回?cái)?shù)據(jù)會(huì)有延遲,超時(shí)未返回即生成失敗,也就不會(huì)返回結(jié)果;或者是因?yàn)樵溄颖环饬恕?/p>
3、生成的短鏈接有效期是多久?有沒(méi)有訪問(wèn)次數(shù)限制?
答:生成的t.cn短鏈接是永久有效的,沒(méi)有點(diǎn)擊次數(shù)限制,可以放心使用。