我对此有一些问题。我可以在不获取任何代码或访问令牌的情况下从 Instagram api 获取公共标记的照片吗?
请分享任何阅读链接,因为我找不到任何链接。我觉得对网络上的 Instagram api 了解较少。
谢谢!
我对此有一些问题。我可以在不获取任何代码或访问令牌的情况下从 Instagram api 获取公共标记的照片吗?
请分享任何阅读链接,因为我找不到任何链接。我觉得对网络上的 Instagram api 了解较少。
谢谢!
您可以通过标签提取公共媒体而无需身份验证。
查看 get /tags/tag-name/media/recent 端点的 API 文档。这是网址:http: //instagram.com/developer/endpoints/tags/#get_tags_media_recent
文档可能会令人困惑,它在示例中显示为此端点使用 access_token,但这不是必需的。您将需要注册一个应用程序并获得一个客户端 ID。
我使用 MeteorJS 并调用一个方法服务器端,该方法基本上返回 instagram 页面的“查看源代码”。因此,如果您可以在标签 url 上运行服务器端抓取,您将能够使用下面的内容处理响应,并将所有图像推送到数组中。
//服务器端方法
Meteor.methods({
'scrapeInst':function(tag){
return Scrape.url('https://www.instagram.com/explore/tags/'+tag+'/')
}})
//客户端逻辑
Meteor.call('scrapeInst',Session.get('params').tag,function(err,resp){
var theInstResp = resp;
cleanOne = resp.replace(/>|window._sharedData = |;</|;|#47;|<|/g,'').split('script')
var splitter = cleanOne[22].split(',');
var theArr = [];
_.each(splitter,function(e){
var theFinal = {};
var theS = e.split(":");
if(theS[0].replace(/"| |/g,'') === "display_src"){
theFinal[theS[0].replace(/"| |/g,'')] = theS[2].replace(/%22/g,'');
theArr.push(theFinal)
}
});
Session.set('photos',theArr);
setTimeout(function(){
Session.set('loading',false)
},1000)
})