長長長字串通過公共短網址服務生成二維碼

冷侃發表於2014-11-30

移動平臺少不了跟二維碼打交道,關於二維碼,有篇好文章推薦 

目前我想實現一個功能,掃描二維碼實現,當採用掃碼app時轉到軟體市場下載,當採用已安裝的指定app時自動登入,就想到了一個方案:

以下載apk連結作為url並且後面接上登入使用的身份金鑰,

可是,這樣的字串好長啊!

我們知道二維碼只能針對文字進行編碼,並且如果字串越長,可能越大,當然可以縮放可能又會導致掃描的時候驗別率下降

咋辦呢?

想到了微博用的短域名方案,經常見到的t.cn,經研究,只允許在weibo內部使用,並沒有開放的api。

這個時候,還是百度和google解決問題

http://goo.gl/ 

http://dwz.cn/

其中,goo.gl號稱最快的短域名服務,可惜某些原因,你懂的。。甚至直接線上二維碼生成的功能,都省了後臺的事了。。

好吧,回到正題,百度可以解決問題,通過post介面到指定的url可以得到longurl 及 tinyurl的相互轉換,訪問短url直接自動跳轉

linux下用上萬能的curl

curl -d "url=http://www.baidu.com/s?wd=%E7%9F%AD%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg" dwz.cn/create.php

響應:

{"tinyurl":"http:\/\/dwz.cn\/wP01K","status":0,"longurl":"http://www.baidu.com/s?wd=短域名服務","err_msg":""}

然後再使用短域名獲得長在址

curl -d "tinyurl=http://dwz.cn/wP01K" dwz.cn/query.php

響應:

{"status":0,"longurl":"http://www.baidu.com/s?wd=短域名服務"}

如果直接訪問將跳轉

http://dwz.cn/wP01K

相關文章