我想构建一个由Instagram照片驱动的小型“即时图片搜索”应用。就像Google Instant,您可以在其中开始键入内容,并且在键入更多字母时显示/更新结果。
您可以看到由Google图片提供支持的实时演示应用。我知道使用大型引擎(Google,Yahoo!,Bing)是可行的,但我不知道Instagram是否允许这样做。任何熟悉API的人都可以提供帮助吗?
如果无法通过有意义的API进行搜索。我只是想先在这里检查一下,因为有很多知识渊博的程序员。
首先,如果您不知道,那么已经有一个类似的(至少)Web应用程序。话虽这么说,让我们去回答:
您需要获取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-ID之前输入的内容以及YOUR-CALLBACK回调函数的名称来更改。
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 }, ... ] }
然后,您只需要处理此响应并对其进行任何操作即可:)