【问题标题】:How To Search Instagram via API Query?如何通过 API Query 搜索 Instagram?
【发布时间】:2012-07-23 00:11:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: jquery ajax api search instagram


    【解决方案1】:

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

    您需要 get your client_id,因为您需要它来调用 API(更多信息 here)。你应该打电话给this endpoint(更多关于Instagram的API端点here的信息,你应该阅读这个:P):

    https://api.instagram.com/v1/tags/SEARCH-TAG/media/recent?client_id=CLIENT-ID&callback=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
        },
        ...
        ]
    }
    

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

    【讨论】:

    • 哇,这是一个非常详细的回复,谢谢!我现在没有时间查看代码,但是您将我链接到一个完美的工作示例。只是在替换SEARCH-TAG 时问一个简单的问题,我将如何添加用户输入?这是否只是首先对 URI 进行编码,以便搜索“baby puppy”变成“baby+puppy”?
    • @JakeRocheleau,我做了一些测试,似乎 API 不接受多个标签。然后我搜索了它,事实上,API 仅限于每个请求一个标签(linklink):/ 像“baby+puppy”或“baby%20puppy”这样的东西不会返回任何内容。因此,为了在您的应用程序中支持多个标记,您可能需要拆分用户输入并发出多个请求,这有点困难。祝你好运:)
    • 作为更新:同一个端点现在需要一个 ACCESS_TOKEN 来查询 instagram.com/developer/endpoints/tags
    【解决方案2】:

    重要的旁注:instagram 允许每小时最多 5000 个查询。如果您使用带有应用程序 ID 的查询。 如果您想提高此限制,您可以要求您的用户进行身份验证。然后您可以传递用户访问令牌。 希望这会有所帮助

    【讨论】:

    • 为什么要降低限制?
    • @user83039 如果您每小时不需要更多查询,如果您的应用程序不需要更多。
    猜你喜欢
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 2015-07-06
    相关资源
    最近更新 更多