Api 我们如何为客户获取实时Instagram位置通知?
我正在开发一个最终用户是中小型企业主的系统。此功能的目标是获取其他人发布到Instagram上的照片(实时),并将其标记为其业务位置。请注意,这与用商业帐户标记的图片不同(即我们想要的图片,而不是我们想要的图片) 我计划使用文档中的实时订阅系统,因为它解释了我们可以订阅一个位置ID,并在该位置接收有关新媒体的通知。我们推出了它,但立即开始失败,因为未发布的订阅限制为30次(我想我们应该在开始构建它之前进行更多的谷歌搜索) 这基本上是概述的同一个问题,但对话真的很乏味,我不确定最终目标是否完全相同,因为提出的解决方案对我没有帮助 客户帐户太多,无法注册更多应用程序以获得足够的订阅(我们将不得不注册数千个应用程序)。我们希望可以使用Instagram用户通过Oauth2工作流获得的访问令牌来创建更多订阅,但我的实验也没有成功。我知道其他人使用大的地理区域订阅而不是位置订阅,但这对我们来说也不够大 我对这个问题感到沮丧和困惑,因为:Api 我们如何为客户获取实时Instagram位置通知?,api,real-time,instagram,instagram-api,Api,Real Time,Instagram,Instagram Api,我正在开发一个最终用户是中小型企业主的系统。此功能的目标是获取其他人发布到Instagram上的照片(实时),并将其标记为其业务位置。请注意,这与用商业帐户标记的图片不同(即我们想要的图片,而不是我们想要的图片) 我计划使用文档中的实时订阅系统,因为它解释了我们可以订阅一个位置ID,并在该位置接收有关新媒体的通知。我们推出了它,但立即开始失败,因为未发布的订阅限制为30次(我想我们应该在开始构建它之前进行更多的谷歌搜索) 这基本上是概述的同一个问题,但对话真的很乏味,我不确定最终目标是否完全相同
有人有解决办法吗?有没有办法使用Instagram用户凭据而不是应用程序凭据?我是否必须定期对位置提要进行投票,放弃我的实时愿望?回答您的问题: 有
webapi
可以解决一些问题:cronjobs更新您的所有数据,并将解析后的数据写入数据库。优点:无需API应用程序
。缺点:有时web API会更改(请求和/或响应)
您还可以自动为每个客户端注册应用程序,将它们添加到数据库,订阅实时更新。然后获取更新
没有办法使用访问令牌
而不是客户端ID
和客户端机密
请记住,“实时”照片更新
并不是真正的实时
(平衡系统等)(来自文档:您应该构建系统以接受每个负载的多个更新对象
),因此1分钟的更新就足够了
UPD
也许有帮助,也许你已经知道加速的灰色方法
您可以通过web API
使用直接链接按位置获取媒体。这是最简单的。您只需要从cookies中csrftoken
生成XHR请求
Csrftoken
可能来自未经授权的用户。您可以在Google Chrome的网络选项卡中查看请求的详细信息
简单示例:POST
query tohttps://instagram.com/query/
带有参数q
和ref
(在本例中,对其值进行URL解码以解释):
内容类型
应为应用程序/x-www-form-urlencoded;字符集=UTF-8
XHR请求的Web标题
:
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
在headers示例中是随机的,不要使用它)
不要经常使用,Instagram有时会通过IP禁用某些web功能,请尝试更改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"
}
]
}
}
谢谢你的回答。我们已经走上了cron-jobs的道路,但这是不幸的,因为它远不是实时的。我们曾考虑为每个用户注册一个客户端应用程序,但我们必须使用数万个应用程序。我无法想象Instagram会让我们这么做。即使他们这么做了,看起来我也得绕过验证码才能自动完成。再次感谢,不客气。请看答案的UPD,可能会有帮助。@TonyBathgate我忘了提到这个。很抱歉请看UPD的答案,可能会有帮助。是的,谢谢你的解释。我以前做过这种事情,但我很确定这违反了他们的服务条款。我希望这项工作能做到有条不紊。
{
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"
}
]
}
}