0

特定のタグに一致する Instagram の写真を自分のサイトに表示したいと考えています。常にすべてのタグを検索する方法が見つからない/tags/tag-name/media/recentため、目的のタグを定期的にチェックするタイマーを実装しています。.id次に、まだ見えていないメディアの属性をキャッシュしているので、そのアイテム/tags/tag-name/media/recentが返されなくなった場合でも、そのアイテムにアクセスできます。

.idこれでサイトに画像を埋め込む準備ができましたが、保存が間違っていると思います。2 番目に利用可能な埋め込みエンドポイント - /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

これは常にパスの最後のコンポーネントを返します。

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

そうhttp://instagr.am/p/D/なるD

tl;dr

  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 に答える
1

/p/([^/]+)(/.)*$ このパターン マッチは次のようなリンクもあります: https://instagram.com/p/6H_CiIrdKn/?taken-by=7imet4 https://instagram.com/p /6H_CiIrdKn

于 2015-08-10T17:10:50.640 に答える