나는'm 찾고 있는MediaID
의 Instagram 이미지 업로드되었습니다. 과 같아야 합니다
1234567894561231236_33215652
내가 찾은 마지막 설정 정수의는usersID
예를 들어 이에 대한 링크를 직접 이미지를,그러나 나는 볼 수 없음mediaID 에서
올바른 형식으로?
http://distilleryimage11.ak.instagram.com/d33aafc8b55d11e2a66b22000a9f09de_7.jpg
이 링크
http://instagram.com/p/Y7GF-5vftL/
I don't 원하는 API 를 사용으로 나가 모두 필요합 MediaID 에서 선택된 이미지입니다.
http://api.instagram.com/oembed?url=http://instagram.com/p/Y7GF-5vftL/
렌더링 json 으로 개체고 쉽게 추출할 수 있습니다 id 미디어에서 그것---
에서,예를 들어 PHP
$api = file_get_contents("http://api.instagram.com/oembed?url=http://instagram.com/p/Y7GF-5vftL/");
$apiObj = json_decode($api,true);
$media_id = $apiObj['media_id'];
예를 들어,JS
$.ajax({
type: 'GET',
url: 'http://api.instagram.com/oembed?callback=&url=http://instagram.com/p/Y7GF-5vftL/',
cache: false,
dataType: 'jsonp',
success: function(data) {
try{
var media_id = data[0].media_id;
}catch(err){}
}
});
그래서 가지 선정"더 좋은 방법이"작은 사용되지 않도록 여기에 내 편집고 다른 솔루션:
자바 스크립트+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) {
var MediaID = data.media_id;
}
});
PHP
$your_url = "" //Input your url
$api = file_get_contents("http://api.instagram.com/oembed?callback=&url=" . your_url);
$media_id = json_decode($api,true)['media_id'];
그래서,이것은 그냥 업데이트 버전의 조's 코드고 현재 작동합니다. 그러나 나는 다른 솔루션,일부는 심지어 피 ajax 요청은:
단축 코드 아약스 솔루션
특정 Instagram url 을 사용하여 단축됩니다. 이렇게 되면 클라이언트가 사용하기 단축에서의 미디어 id 요청이 있는 경우니다.
예를 들어 단축 url 을 다음과 같습니다:https://www.instagram.com/p/Y7GF-5vftL/
는Y7GF-5vftL
당신의 단축에 대한 그림이다.
를 사용하여 Regexp:
var url = "https://www.instagram.com/p/Y7GF-5vftL/"; //Define this yourself
var Key = /p\/(.*?)\/$/.exec(url)[1];
은 같은 범위에서,키
를 포함합니다. 이를 요청하자,'s say,낮은 고해상도 사진을 이용하여 단축을 수행할 수은 다음과 같습니다.
$.ajax({
type: "GET",
dataType: "json",
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;
}
});
많은 다른 유용한 정보를 포함하여,media id,에서 반환된 RawData 구조입니다. 로그인이나 보기까지 api 설명서를 참조하십시오.
단축 변환 솔루션
할 수 있습니다 실제로 변환하는 단축하의 id 와 비교적 쉽게! 여기's 하는 간단한 방법에 자바스크립트:
function shortcodeToInstaID(Shortcode) {
var char;
var id = 0;
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
for (var i = 0; i < Shortcode.length; i++) {
char = Shortcode[i];
id = (id * 64) + alphabet.indexOf(char);
}
return id;
}
참고:원하는 경우에 더 강력 node.js 솔루션 또는 보고 싶어하는 방법으로 변환 후,체크아웃@속's모듈 고궁.
전체 페이지 솔루션
그래서 무엇이 있는 경우 이 URL 을 전 Instagram 페이지:https://www.instagram.com/p/BAYYJBwi0Tssh605CJP2bmSuRpm_Jt7V_S8q9A0/
만,당신은 당신을 읽을 수 있는 HTML 를 찾아 메타 재산이 포함된 미디어의 ID 입니다. 거기에는 또한 몇 가지 다른 알고리즘에 대해 수행할 수 있는 URL 을 자체가 그것을 얻기 위하여,그러나 나는 믿고 필요 너무 많은 노력 그래서 우리는 그것을 유지하는 간단하다. 하쿼리하는 메타 태그al:ios:url 에
또는 반복을 통해 html. 읽기 때문에 메타 태그은 모든 게시,나는'll 당신을 보여 반복하는 방법.
참고:이것은 작은 불안정하고 취약하 patched. 이 작동하지 않는 방법에서 사용하는 페이지를 미리 보기 상자입니다. 그래서 만약 당신이 그것에게 현재 HTML 을 클릭하면 그림에서 사람이's profile 이고 나쁜 Media ID.
function getMediaId(HTML_String) {
var MediaID = "";
var e = HTML_String.indexOf("al:ios:url") + 42; //HTML_String is a variable that contains all of the HTML text as a string for the current document. There are many different ways to retrieve this so look one up.
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);
}
return MediaID;
}
거기 당신은,이동의 무리는 다른 방법을 사용하 Instagram's api 을 얻을 미디어의 ID 입니다. 희망을 하나의 프로그램을 보았다.
아 API 니다. 과에 던진 변환media_id
을 단축`으로 추가 보너스입니다.
에 따라속's놀라운 일파악하기위한 변환. 나's일변환 10 진법으로 base64in php. 와rgbflawed's일변환하는 다른 방법으로 다시(으로 알파벳이 수정). #teameffort
function mediaid_to_shortcode($mediaid){
if(strpos($mediaid, '_') !== false){
$pieces = explode('_', $mediaid);
$mediaid = $pieces[0];
$userid = $pieces[1];
}
$alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
$shortcode = '';
while($mediaid > 0){
$remainder = $mediaid % 64;
$mediaid = ($mediaid-$remainder) / 64;
$shortcode = $alphabet{$remainder} . $shortcode;
};
return $shortcode;
}
function shortcode_to_mediaid($shortcode){
$alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
$mediaid = 0;
foreach(str_split($shortcode) as $letter) {
$mediaid = ($mediaid*64) + strpos($alphabet, $letter);
}
return $mediaid;
}
할 수 있습니다 실제로 파생 MediaId 에서의 마지막 세그먼트 링크를 알고리즘을 사용하는 방법에 대해 썼다 여기:http://carrot.is/coding/instagram-ids. 그것은 작품을 매핑하여 URL 을 세그먼트에 의 문자 코드를&변환 id 으로 기본 64 숫자입니다.
예를 들어,당신은 링크에 언급(http://instagram.com/p/Y7GF-5vftL),우리는 마지막 세그먼트(Y7GF-5vftL
)다음에 우리도 그것으로 문자 코드를 사용하여base64url-안전한 알파벳 (24:59:6:5:62:57:47:31:45:11_64
). 다음으로,우리 변환이 base64 번호를 10 진법으로(448979387270691659
).
는 경우 추가 userId 후_
당신은 전체 id 형식을 지정되지만,이후 MediaId 은 독특한 없이 사용자 id 할 수 있습니다 실제로를 생략하면 사용자 id 에서 대부분의 요청이 있습니다.
마지막으로,나는 Node.js 모듈라는[instagram-id-url-segment](https://www.npmjs.com/package/instagram-id-to-url-segment 용)자동화가 이 변환:
convert = require('instagram-id-to-url-segment');
instagramIdToUrlSegment = convert.instagramIdToUrlSegment;
urlSegmentToInstagramId = convert.urlSegmentToInstagramId;
instagramIdToUrlSegment('448979387270691659'); // Y7GF-5vftL
urlSegmentToInstagramId('Y7GF-5vftL'); // 448979387270691659
을 시도를 해결하기 이 질문: https://stackoverflow.com/questions/12682039/how-can-i-get-an-direct-instagram-link-from-a-twitter-entity
얻을 수 있습니다 그냥 이미지 추가하여/미디어/URL. 용
할 수 있도 크기를 지정,
하나의 티(축소판),m(중),l(large). 기본값은 m.
미디어 ID:448979387270691659_45818965
이것은 어떻게 그것을 얻을 수 있습니다.
photo448979387270691659_45818965
이 있어야한 사진 ID 입니다.
어떤 이유로,이와 함께 작동하도록 보인 팝업,그리고 실제 이미지 URL.
여기에는 파이썬 솔루션 없이 이를 수행하는 api 를 호출합니다.
def media_id_to_code(media_id):
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'
short_code = ''
while media_id > 0:
remainder = media_id % 64
media_id = (media_id-remainder)/64
short_code = alphabet[remainder] + short_code
return short_code
def code_to_media_id(short_code):
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'
media_id = 0;
for letter in short_code:
media_id = (media_id*64) + alphabet.index(letter)
return media_id
에서는 순수한 JS(제공하는 귀하의 브라우저를 처리할 수 있 xhr 은는 모든 주요 브라우저[포함 IE>6]를 할 수 있습니다):
function igurlretrieve(url) {
var urldsrc = "http://api.instagram.com/oembed?url=" + url;
//fetch data from URL data source
var x = new XMLHttpRequest();
x.open('GET', urldsrc, true);
x.send();
//load resulting JSON data as JS object
var urldata = JSON.parse(x.responseText);
//reconstruct data as "instagram://" URL that can be opened in iOS app
var reconsturl = "instagram://media?id=" + urldata.media_id;
return reconsturl;
}
제공하는 이는 너의 목표-단순히 열 페이지에 Instagram iOS 앱는 정확하게 이해 이해야 하는 경우에 특히지 않는't 고 싶어 견딜 수수료 라이센스.
를 추가하는 경우?__a=1
의 끝에서 Instagram 공용 Url,당신은 데이터를 얻을 대중의 URL JSON.
위해ID 미디어
의 이미지에서 URL 과,단순히 추가 JSON 코드 요청에 게시 URL:
http://instagram.com/p/Y7GF-5vftL/?__a=1
응답에 다음과 같이 보입니다 아래. 쉽게 복구할 수 있습니다 이미지가 ID 에서"id"
매개변수에 대한 답변...
{
"graphql": {
"shortcode_media": {
"__typename": "GraphImage",
"id": "448979387270691659",
"shortcode": "Y7GF-5vftL",
"dimensions": {
"height": 612,
"width": 612
},
"gating_info": null,
"fact_check_information": null,
"media_preview": null,
"display_url": "https://scontent-cdt1-1.cdninstagram.com/vp/6d4156d11e92ea1731377ef53324ce28/5E4D451A/t51.2885-15/e15/11324452_400723196800905_116356150_n.jpg?_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_cat=109",
"display_resources": [
단축을 사용할 수 있습니다 media API 에서 instagram. 당신이 사용하는 경우 php 할 수 있습 다음 코드를 사용하여 얻을 단축에서 이미지's URL:
$matches = [];
preg_match('/instagram\.com\/p\/([^\/]*)/i', $url, $matches);
if (count($matches) > 1) {
$shortcode = $matches[1];
}
다음 요청을 보내는 API 를 사용하여 액세스 토큰(대체의 액세스-토큰`으로 토큰)
$apiUrl = sprintf("https://api.instagram.com/v1/media/shortcode/%s?access_token=ACCESS-TOKEN", $shortcode);
편집
IOS Instagram 응용 프로그램은 이제 등록에 대한 일반적인 http 연결에서 열 Instagram 응용 프로그램의 링크정 방법은 더 이상 필요하지 않습니다.
옛
Swift4 짧은 코드에 구문 분석 솔루션
private static func instagramDeepLinkFromHTTPLink(_ link: String) -> String? {
guard let shortcode = link.components(separatedBy: "/").last else { return nil }
// algorithm from https://stackoverflow.com/a/37246231/337934
let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
var mediaId: Int = 0
for (_, char) in shortcode.enumerated() {
guard let index = alphabet.index(of: char) else { continue }
mediaId = (mediaId * 64) + index.encodedOffset
}
return "instagram://media?id=\(mediaId)"
}
에 대한 기간을 추출 Media ID 자신을 매우 자주,그래서 나는 내 자신의 스크립트는(매우 가능성이 높's 에 기반의 일부는 여기에 예). 함께 다른 작은 스크립트를 내가 자주 사용되기 시작했을 업로드하기에 www.findinstaid.com 내 자신의 빠르게 액세스할 수 있습니다.
추가 옵션이 사용자 이름을 입력하를 얻을 미디어의 ID12 가장 최근 게시물 또는 URL 을 입력을 얻 ID 미디어의 특정 게시합니다.
경's 편리하고,모든 링크를 사용할 수 있습니다(난't 어떤 추가 또는 기타 금전적 이익 웹사이트에-나는 추천에 있는 링크를'감사'탭 www.auditninja.io 상호작용을 할 수 있도이지만,또한이 사이트에 없는 추가 또는 금전적 이익만 취미 프로젝트).