所以這裏有很多折舊的解決方案,所以這裏是我的編輯/解決方案,在這個日期工作。
的Javascript + jQuery的
$.ajax({
type: 'GET',
url: 'http://api.instagram.com/oembed?callback=&url='+Url, //You must define 'Url' for yourself
cache: false,
dataType: 'json',
jsonp: false,
success: function (data) {
try {
var MediaID = data.media_id;
} catch (err) {
console.log(err);
}
}
});
所以這只是一個更新的@喬治的代碼版本,目前的工作。但是我做了其他的解決方案,避免一個Ajax請求:
簡碼關鍵解決方案
某些Instagram的網址中使用縮短的URL語法。這允許客戶僅使用簡碼代替正確請求的媒體想法IF。
一個例子簡碼的網址是這樣的:https://www.instagram.com/p/Y7GF-5vftL/
的「Y7GF-5vftL」是你的圖片簡碼。
var Key = "";
var i = url.indexOf("instagram.com/p/") + 16; //Once again you need to define 'url' yourself.
for(;i<=url.length-1;i++)//length is invalid but shouldn't matter because it won't make to past 10 chars
{
if (url.charAt(i) == '/')
break;
Key += url.charAt(i);
}
在相同的範圍內,'鑰匙'將包含您的簡碼。我們要求讓我們說,一個低分辨率畫面,使用該簡碼,你會做類似如下:
//check to see if it is a shortcode url or not(optional but recommended)
if (Key.length <= 12) { //is
$.ajax({
type: "GET",
dataType: "json",
jsonp: false,
cache: false,
url: "https://api.instagram.com/v1/media/shortcode/" + Key + "?access_token=" + access_token, //Define your 'access_token'
success: function (RawData) {
var LowResURL = RawData.data.images.low_resolution.url;
}
});
}
有很多在返回RAWDATA結構的其他有用的信息。記錄它或查找api文檔以查看。
整版解決方案 所以如果你知道該網址,全Instagram的頁面,如:https://www.instagram.com/p/BAYYJBwi0Tssh605CJP2bmSuRpm_Jt7V_S8q9A0/
那麼實際上你可以閱讀HTML找到包含媒體ID元屬性。還有一些其他算法可以在URL上進行預處理以獲得它,但我相信這需要付出很多努力,所以我們會保持簡單。
注意:這有點不穩定,容易被修補。此方法不適用於使用預覽框的頁面。因此,如果您在某人的個人資料中點擊某張照片時將當前的HTML提供給它,則會中斷並返回一個錯誤的媒體ID。
var MediaID = "";
var e = HTML_String.indexOf("al:ios:url") + 42; //HTML_String is a variable that contains all of the HTML code for the URL. There are many different ways to retrieve this so look one up. You do need to define this.
for (var i = e; i <= e + 100; i++) {//100 should never come close to being reached
if (request.source.charAt(i) == "\"")
break;
MediaID += request.source.charAt(i);
}
而且你去那裏,一堆不同的方式使用的Instagram的API來獲取媒體ID。希望一個人修復你的掙扎。