首页 > 代码库 > 贴图库开放平台接口使用

贴图库开放平台接口使用

之前喜欢都是使用的七牛作为网站图片外链,后来需要做一个图片墙的应用,图片的数量激增,考虑七牛的每月10g流量可能不太够用,于是转而寻找其他图片外链。

后来选择了贴图库,号称无限空间,无限流量,看起来很不错。但实际使用起来问题在于上传的图片生成的外链url中的文件名是随机生成的,像很多相册一样,不是很方便管理。

用七牛的时候都是,直接url+图片名的,所以代码里很容易就将所有外链写到页面上,而贴图库的外链地址无法做到。还好提供了API。

不过文档实例使用的是PHP, 我站点使用的Python,就仿照着写了一下,测试下没什么问题了,主要用于获取图片名和外链url的对应关系。

下面贴出代码

# -*- coding: utf-8 -*-
import time
import urllib
import urllib2
import json
import base64
import hmac
import hashlib

## 从贴图库(tietuku.com)相册获取图片

##获取相册信息API
#tmp_params={ "deadline": deadline, "action": "get", "uid":1}
#url="http://api.tietuku.com/v1/Album"

##秘钥
AccessKey = ‘‘
SecretKey = ‘‘

##预设变量,也可通过相册API获取
album_id = 1;
album_pages = 1;

result = ""

for page in range(1,album_pages+1):
    ##请求参数和URL
    deadline = int(time.time())+ 60
    tmp_params={ "deadline": deadline, "action": "album", "aid":album_id, "page_no":page}
    url="http://api.tietuku.com/v1/List"

    ##请求参数与秘钥生成Token
    jsoncode = json.dumps(tmp_params)
    encodedParam = base64.b64encode(jsoncode)
    sign = hmac.new(SecretKey, encodedParam, digestmod=hashlib.sha1).hexdigest()
    encodedSign = base64.b64encode(sign)
    Token = AccessKey + ‘:‘ + encodedSign + ‘:‘ + encodedParam

    ##发送http请求
    parameters = {"Token": Token}
    data = urllib.urlencode(parameters)
    request=urllib2.Request(url,data)
    response=urllib2.urlopen(request)

    res_data = response.read()
    res_dict=json.loads(res_data)

    for e in res_dict["pic"]:
        result = result + e["name"]+" : "+"\""+e["linkurl"]+"\"" +",\n"

print result


贴图库开放平台接口使用