0

我想在我的网站上显示与特定标签匹配的 Instagram 照片。我看不到一直搜索所有标签的方法,所以我正在实现一个计时器,它会定期检查/tags/tag-name/media/recent我想要的标签。然后我正在缓存.id任何尚未看到的媒体的属性,因此如果/tags/tag-name/media/recent不再返回该项目,我仍然可以访问该项目。

现在我准备在我的网站上嵌入图像,但我认为保存.id是错误的。第二个可用的嵌入端点/p/shortcode/media——看起来很接近。它向图像发出重定向,这足以完成我的任务,但它需要一个“短代码”,而不是一个 ID。

我如何获得这个简码?.shortcode从 返回的媒体对象没有属性/tags/tag-name/media/recent。我应该使用正则表达式来解析.link属性,假设链接将采用这种形式http://instagr.am/p/shortcode/吗?还是有更好的技术来记住并在以后显示与我想要的标签匹配的图像?

4

4 回答 4

2

更喜欢正则表达式解决方案String.split,这就是我最终做的事情:

//expecting http://instagr.am/p/BWl6P/
var linkrx = /\/p\/([^\/]+)\/$/;
// find /p/, then 1 or more non-slash as capture group 1, then / and EOL
if(igPic.link.match(linkrx) !== null){
  var shortcode = igPic.link.match(linkrx)[1];
};
于 2013-11-11T23:58:03.730 回答
1

没有其他办法,只需使用链接属性中的 .split() 即可。这将为您提供简码:

link.split("/")[4]
于 2013-11-09T08:06:18.260 回答
1

/p/([^/]+)(/.)*$ 此模式匹配还链接如下: https://instagram.com/p/6H_CiIrdKn/?taken-by=7imet4 https://instagram.com/p /6H_CiIrdKn

于 2015-08-10T17:10:50.640 回答
1

这将始终返回路径的最后一个组件

'http://instagr.am/p/D/'.replace(/\/$/i, '').split("/").pop()

所以http://instagr.am/p/D/变成D

tl;博士

  1. 删除任何尾部斜杠 ( //$/i, a/b/c/a/b/c)
  2. /按( a/b/c[a,b,c])分割
  3. 获取[a,b,c]数组中的最后一项 ( .pop(), [a,b,c]c)
于 2016-10-08T10:54:19.703 回答