使用Instagram API

这里描述的是官方公布的API,而不是通过hack得到的api。
有兴趣可以去这里注册 http://instagr.am/developer/ 。可能会有一个审核激活的过程,大约要几天的时间。
完成后会收到一封邮件,然后就能登录查看文档了。但这个文档似乎暂时并不是很丰富,因为我没找到用于上传的api。

这里主要写了一些使用上的注意事项。

1、外链图片
GET http://instagr.am/p/{shortcode}/media
它接受一个参数size,t表示缩略图 m表示中等, l表示最大,默认为m。
假设有链接 http://instagr.am/p/BSJRn/ 则可以:
<img src="http://instagr.am/p/BSJRn/media?size=m" />
效果:


2、shortcode 转换成 media-id
shortcode 就是 http://instagr.am/p/BSJRn/ 里边的 'BSJRn'
截止目前,我在那个文档中并没有找到有关如何将shortcode 转化成 media-id 的描述。但是通过一些猜测和验证,很容易就会得出正确的算法。
很简单,实际上shortcode就是一个64进制数字,解码的过程就是64进制转化成10进制的过程。
代码:

#A代表0,B代表1,..., _代表63
_chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'
_chars_num=len(_chars)

def deshortcode(t):
    t=str(t)
    n,i=0,len(t)-1
    for c in t:
        if c not in _chars: return 0
        n+=(_chars.index(c)*pow(_chars_num, i))
        i-=1
    return n

print deshortcode('BSJRn')
# 21533799

3、参数中的 redirect_uri 必须与注册中的 CALLBACK URL 相同
这一点是跟Twitter API 不同的地方,在注册Twitter客户端时,那个CALLBACK URL可以随便写;而Instagram 则必须跟注册时的相同,否则会硬邦邦的告诉你这样不行。
你可以点击 这里 可以注册一个 Instagram 客户端,不过你必须首先通过之前所说的那个验证才行。

4、验证过程比Twitter API简单得多
不用什么OAuth库,也不用什么参数签名(大概这就是OAuth2.0吧?)。直接通过https获得access_token,然后用这个access_token就可以做任何事情了。特别简单。文档中都有描述这里不多说了。 More