如何通过API查询搜索Instagram?

Jak*_*ake 7 api ajax search jquery instagram

我想建立一个由Instagram照片驱动的小型"即时图像搜索"应用程序.这就像您开始输入的Google Instant,当您输入更多字母时,结果会显示/更新.

您可以看到由Google图片提供支持的实时演示应用.我知道这可以用更大的引擎(Google,Yahoo!,Bing),但我不知道Instagram是否允许这样做.任何熟悉API的人都可以提供帮助吗?

如果无法通过API搜索有意义的话.我只想先在这里查看,因为有这么多知识渊博的程序员.

scu*_*mah 19

首先,如果您不知道,已经有一个类似的(至少)Web应用程序.话虽这么说,让我们回答一下:

您需要获取client_id,因为您需要它来调用API(此处有更多信息).你应该打电话给这个端点(这里有关于Instagram的API端点的更多信息,你应该读到:P):

https://api.instagram.com/v1/tags/SEARCH-TAG/media/recent?client_id=CLIENT-ID&callback=YOUR-CALLBACK
Run Code Online (Sandbox Code Playgroud)

当然SEARCH-TAG,CLIENT-ID使用之前获得的用户输入和YOUR-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
    },
    ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

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