api - 我们如何为客户获取实时 Instagram 位置通知?

标签 api real-time instagram instagram-api

我正在开发一个最终用户是中小型企业主的系统。此功能的目标是获取其他人发布到 Instagram 并标有其营业地点的图片(实时)。请注意,这与使用企业帐户@标记的图片不同(即我们想要 this feed ,而不是 this feed )。

我打算使用记录在案的实时订阅系统 here因为它解释了我们可以订阅位置 ID 并在该位置接收有关新媒体的通知。我们推出它并立即开始失败,因为未发布的订阅限制为 30 个(我想我们应该在开始构建之前进行更多的谷歌搜索)。

这与概述的问题基本相同 here但那次谈话真的很陈旧,我不确定最终目标是否完全相同,因为提出的解决方案对我没有帮助。

有太多的客户帐户无法注册更多应用程序以获得足够的订阅(我们必须注册数千个应用程序)。我们希望我们可以使用通过 Oauth2 工作流程获得的 Instagram 用户的访问 token 来创建更多订阅,但我的实验也没有成功。我知道其他人使用大地理区域订阅而不是位置订阅,但这对我们来说也不够大。

我对这个问题感到沮丧和困惑,因为:

  • 似乎其他应用程序正在以不符合 30 个订阅限制的规模实时获取这些图片。
  • 我无法想象许多用例是每个应用程序 30 个订阅将是一个有用的功能。

  • 有没有人有解决方法?有没有办法使用 Instagram 用户凭据而不是应用程序凭据?我是否必须定期轮询位置提要并放弃我的实时愿望?

    最佳答案

    回答您的问题:

    web-API对于一些解决方法:cronjobs 更新您所有的 links并将解析后的数据写入您的数据库。优点:不需要API applications .缺点:有时 Web-API 会发生变化(请求和/或响应)。

    您还可以自动为每个客户端注册应用程序,将它们添加到数据库中,订阅实时更新。然后获取更新。

    没有办法使用access-token而不是 CLIENT-IDCLIENT-SECRET .

    请记住,那个 "Real-time" photo updates不是真的real-time (平衡系统等)(来自文档: You should build your system to accept multiple update objects per payload )所以 1 分钟更新就足够了。

    UPD

    也许有帮助,也许你已经知道这种灰色的加速方式。

    您可以使用直接链接通过 web-API 按位置获取媒体.这是最简单的。您只需要csrftoken从 cookie 生成 XHR request . Csrftoken可能来自未经授权的用户。 request详情见Network谷歌浏览器的标签。

    简单示例:POST查询到https://instagram.com/query/带参数 qref (在示例中,它们的值是 urldecoded 来解释的):

    q=ig_location(237630908){media.after(20000000000000000000000,2){nodes{id,display_src,thumbnail_src}}}&ref=locations::show
    
    Content-type应该是 application/x-www-form-urlencoded; charset=UTF-8 .
    XHR request 的网页标题:
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
    Accept: */*
    Accept-Language: en-US;q=0.6,en;q=0.4
    Referer: https://instagram.com/explore/locations/237630908/
    Origin: https://instagram.com
    X-Instagram-AJAX: 1
    X-Requested-With: XMLHttpRequest
    X-CSRFToken: e4e1e1eddd67b2b50b6d8ae7b49e01c0
    Cookie: csrftoken=e4e1e1eddd67b2b50b6d8ae7b49e01c0
    Content-type: application/x-www-form-urlencoded; charset=UTF-8
    

    ( csrftoken 在标题示例中是随机的,不要使用它)

    不要经常使用它,Instagram 有时会通过 IP 禁用某些网络功能,请尝试更改 csrftoken .

    答案是:
    {
        status: "ok",
        media: {
            nodes: [
            {
                thumbnail_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/12142408_1499221190404489_557984803_n.jpg",
                id: "1104470761628620590",
                display_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/e35/12142408_1499221190404489_557984803_n.jpg"
            },
            {
                thumbnail_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/12139611_1663826773904632_2063764196_n.jpg",
                id: "1102282973026047789",
                display_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/e35/12139611_1663826773904632_2063764196_n.jpg"
            }
            ]
        }
    }
    

    关于api - 我们如何为客户获取实时 Instagram 位置通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32912554/

    相关文章:

    php - 获取大量 Facebook 页面的粉丝数量

    python - 使用 Python 将图像上传到 Instagram

    ios - Instagram 注销在 iphone 中不起作用?

    math - 实时计算碰撞——处理时间延迟

    javascript - 我如何创建自己的 url,如 ws ://echo. websocket.org?

    java - 在 Java 中实例化对象时产生奇怪的垃圾

    ios - 翻译 Assets 库 ://scheme to file://in order to share to instagram while keeping metadata

    java - Bigcommerce 在 PHP 中创建订单错误 api

    javascript - 如何在 Canvas 上更改 id

    javascript - 使用事件将玩家信息从客户端发送到服务器(minecraft bedrock API)