您的位置:首页 > 其它

贴图库开放平台接口使用

2015-02-02 22:23 190 查看
之前喜欢都是使用的七牛作为网站图片外链,后来需要做一个图片墙的应用,图片的数量激增,考虑七牛的每月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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: