Api 如何获取Instagram媒体项目的快捷码,以便以后嵌入图片?

Api 如何获取Instagram媒体项目的快捷码,以便以后嵌入图片?,api,caching,instagram,Api,Caching,Instagram,我想在我的网站上显示与特定标签匹配的Instagram照片。我看不到一种在任何时候都搜索所有标签的方法,所以我实现了一个计时器,它定期检查我想要的标签。然后,我将缓存任何尚未看到的媒体的.id属性,以便在/tags/tag name/media/recent不再返回该项目时,我仍然可以访问该项目 现在我准备在我的网站上嵌入图片,但我认为保存.id是错误的。第二个可用的嵌入端点--看起来很接近。它向映像发出重定向,这足以完成我的任务,但它需要的是“短代码”,而不是id 我如何获得这个短代码?从/t

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

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


我如何获得这个短代码?从
/tags/tag name/media/recent
返回的媒体对象上没有
.shortcode
属性。假设链接的形式为
http://instagr.am/p/shortcode/
?或者,有没有更好的方法来记住并在以后显示与我想要的标记匹配的图像?

没有其他方法,只需使用link属性中的.split()。这将为您提供快捷码:

link.split("/")[4]

没有其他方法,只需使用link属性中的.split()。这将为您提供快捷码:

link.split("/")[4]

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];
};

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];
};
/p/([^/]+)(/)*$ 此模式匹配还包括以下链接: /p/([^/]+)(/)*$ 此模式匹配还包括以下链接:

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

'http://instagr.am/p/D/“.replace(/\/$/i,”).split(“/”).pop()
所以
http://instagr.am/p/D/
变成
D

tl;博士
  • 删除任何尾随斜杠(
    /$/i
    a/b/c/
    → <代码>a/b/c)
  • /
    a/b/c
    → <代码>[a、b、c])
  • 获取
    [a,b,c]
    数组(
    .pop()
    [a,b,c]
    → <代码>c)

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

    'http://instagr.am/p/D/“.replace(/\/$/i,”).split(“/”).pop()
    
    所以
    http://instagr.am/p/D/
    变成
    D

    tl;博士
  • 删除任何尾随斜杠(
    /$/i
    a/b/c/
    → <代码>a/b/c)
  • /
    a/b/c
    → <代码>[a、b、c])
  • 获取
    [a,b,c]
    数组(
    .pop()
    [a,b,c]
    → <代码>c)

  • 假设您的帖子链接为
    https://instagram.com/p/BW16p/?taken-by=blah blah
    然后使用linkrx=
    /\/p\/([^\/]+)\/
    来提取短代码。假设您将post链接作为
    https://instagram.com/p/BW16p/?taken-by=blah blah
    然后使用linkrx=
    /\/p\/([^\/]+)\/
    提取短代码。