10

我想构建一个由 Instagram 照片提供支持的小型“即时图像搜索”应用程序。这就像 Google Instant 一样,您开始输入并在您输入更多字母时显示/更新结果。

您可以看到由 Google 图片提供支持的实时演示应用程序。我知道这对于更大的引擎(谷歌、雅虎、必应)是可能的,但我不知道 Instagram 是否允许这样做。任何熟悉 API 的人都可以提供帮助吗?

如果无法通过有意义的 API 进行搜索。我只是想先检查这里,因为有这么多知识渊博的程序员。

4

2 回答 2

21

首先,如果您不知道,已经有一个类似的(至少)网络应用程序。话虽如此,让我们来回答:

您需要获取您的 client_id,因为您需要它来调用 API(此处有更多信息)。您应该调用此端点(有关 Instagram 的 API 端点的更多信息,请阅读此处:P):

https://api.instagram.com/v1/tags/SEARCH-TAG/media/recent?client_id=CLIENT-ID&callback=YOUR-CALLBACK

当然,用你之前得到的那个和你的回调函数的名字来改变SEARCH-TAG用户输入。CLIENT-IDYOUR-CALLBACK

此调用的响应来自JSONP,如下所示(取自 API 页面):

{
    "data": [{
        "type": "image",
        "filter": "Earlybird",
        "tags": ["snow"],
        "comments": {
            "data": [{
                "created_time": "1296703540",
                "text": "Snow",
                "from": {
                    "username": "emohatch",
                    "username": "Dave",
                    "id": "1242695"
                },
                "id": "26589964"
            },
            {
                "created_time": "1296707889",
                "text": "#snow",
                "from": {
                    "username": "emohatch",
                    "username": "Emo Hatch",
                    "id": "1242695"
                },
                "id": "26609649"
            }],
            "count": 3
        }
        "caption": {
            "created_time": "1296703540",
            "text": "#Snow",
            "from": {
                "username": "emohatch",
                "id": "1242695"
            },
            "id": "26589964"
        },
        "likes": {
            "count": 1,
            "data": [{
                "username": "mikeyk",
                "full_name": "Mike Krieger",
                "id": "4",
                "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg"
            }]
        },        
        "link": "http://instagr.am/p/BWl6P/",
        "user": {
            "username": "emohatch",
            "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg",
            "id": "1242695",
            "full_name": "Dave"
        },
        "created_time": "1296703536",
        "images": {
            "low_resolution": {
                "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_6.jpg",
                "width": 306,
                "height": 306
            },
            "thumbnail": {
                "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_5.jpg",
                "width": 150,
                "height": 150
            },
            "standard_resolution": {
                "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_7.jpg",
                "width": 612,
                "height": 612
            }
        },
        "id": "22699663",
        "location": null
    },
    ...
    ]
}

然后你只需要处理这个响应并用它做任何你想做的事情:)

于 2012-07-24T16:51:28.390 回答
3

An important side note: instagram allows max 5000 queries for hour. This if you use the query with the app id. If you want to raise this limit, you can ask your users to authenticate. Then you can pass the the user access token. Hope this helps

于 2013-01-03T22:32:39.790 回答