Я'м ищу mediaid существует
изображения Instagram, который был загружен. Это должно выглядеть
1234567894561231236_33215652
Я узнал последний набор чисел, как пользовательsid`
Например: это ссылка для изображения напрямую, однако я не вижу никаких `mediaid существует в правильном формате?
http://distilleryimage11.ak.instagram.com/d33aafc8b55d11e2a66b22000a9f09de_7.jpg
а это ссылка
http://instagram.com/p/Y7GF-5vftL/
Я Дон'т хотите использовать API, как все, что мне нужно mediaid существует от выбранного изображения.
http://api.instagram.com/oembed?url=http://instagram.com/p/Y7GF-5vftL/
Визуализация как JSON-объект, и вы можете легко извлечь медиа ид от него ---
Например, в 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){}
}
});
Поэтому самым проголосовали то"лучше" и немного устарела, поэтому вот мое редактирование и другие решения:
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) {
var MediaID = data.media_id;
}
});
РНР
$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-запрос:
<ч/>
Решение Аякс Шорткод
Определенные url Instagram использовать сокращенный синтаксис url. Это позволяет клиенту использовать шорткод в код медиа, если просила правильно.
Пример шорткода URL-адрес выглядит следующим образом: https://www.instagram.com/p/Y7GF-5vftL/
В `Y7GF-5vftL-ваш шорткод для картины.
С Помощью Регулярных Выражений:
var url = "https://www.instagram.com/p/Y7GF-5vftL/"; //Define this yourself
var Key = /p\/(.*?)\/$/.exec(url)[1];
В той же области, "ключ" будет содержать свой шорткод. Теперь запрос, пусть'ы сказать, низкое разрешение изображения, используя этот код, вы могли бы сделать нечто вроде следующего:
$.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;
}
});
Есть много другой полезной информации, включая идентификатор носителя, в возвращаемой структуре сырых данных. Войдите или посмотреть в документации по API, чтобы увидеть.
<ч/>
Решение Преобразования Шорткод
Вы действительно можете превратить ваш шорткод в код довольно легко! Здесь'простой способ сделать это в JavaScript:
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 или хотите посмотреть, как бы вы преобразовать его обратно, проверить @сленг'ы модуль НПМ.
<ч/>
Полное Решение Страниц
Так что если у вас есть ссылка на полную страницу Instagram как: https://www.instagram.com/p/BAYYJBwi0Tssh605CJP2bmSuRpm_Jt7V_S8q9A0/
Ну, вы на самом деле можете прочитать в HTML, чтобы найти мета свойства, которое содержит идентификатор носителя. Есть также несколько других алгоритмов, которые можно выполнять на самого URL-адреса, чтобы получить его, но я считаю, что требует слишком много усилий, так что мы будем держать его простым. Либо запрос мета-тег Аль:для iOS:URL-адрес или перебирать в формате HTML. Поскольку значение метатегов разносится по всему, я'МР показать вам, как перебирать.
Примечание: это немного нестабилен и уязвим, чтобы быть исправленными. Этот метод не работает на странице, которая используется в окне предварительного просмотра. Так что если вы даете ему текущего HTML при нажатии на картинку в чьем-то'ы профиль, это будет перерыв и возвращаться плохая ИД медиа.
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'ы API, чтобы получить идентификатор СМИ. Надеюсь, что устраняет трудности.
Никаких вызовов API! И я бросил в конвертировании media_id
в короткий
в качестве дополнительного бонуса.
На основе сленг'С удивительные работы для выяснения преобразования. Натан'С работа преобразования по основанию 10 в кодировке base64 в PHP. И rgbflawed'ы Работа преобразование его в обратную сторону (с измененным алфавитом). #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-адреса, по характер &амп коды; преобразование идентификатора в базу 64 количество.
Например, дал ссылку вы упомянули (http://instagram.com/p/Y7GF-5vftL), мы получим последний сегмент (Y7GF-5vftL
), то мы сопоставить его в коды символов с помощью base64 в URL-адрес-безопасная Азбука (24:59:6:5:62:57:47:31:45:11_64
). Далее мы преобразуем это число в base64 в основанию 10 (448979387270691659
).
А если вы добавите свой userId после_
, вы не получите полный ID в указанной форме, но с mediaid существует уникален не идентификатор пользователя, который вы на самом деле можете не указывать идентификатор пользователя, от самых запросов.
Наконец, я сделал Node.js модуль под названием instagram-ИД-в-адрес-сегмент для автоматизации этого преобразования:
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 (большой). По умолчанию м.
так для эскиза: http://instagr.am/p/QC8hWKL_4K/media/?size=t
Идентификатор носителя: 448979387270691659_45818965
Это, как его получить.
photo448979387270691659_45818965
Там должно быть ваше удостоверение личности с фотографией.
По какой-то причине, это только кажется, работать с всплывающее окно, а не фактический URL-адрес изображения.
Вот решение на Python, чтобы сделать это без вызова 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
В чистом JavaScript (при условии, что ваш браузер может обрабатывать XHRs, который всех основных браузерах, включая ИЕ > 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-приложение, которое является точно, что это ... это следует делать, особенно если вы Don'т хотим, чтобы терпеть лицензионные сборы.
Если добавить ?__а=1
в конце Instagram общедоступные URL-адреса, вы получаете данные из общедоступного URL-адреса в формате JSON.
Для средств массовой информации
изображения из URL сообщения, просто добавьте код запроса в формате JSON в пост URL-адрес:
http://instagram.com/p/Y7GF-5vftL/?__a=1
Ответ будет выглядеть следующим образом ниже. Вы можете легко восстановить картинку из в `"ИД" и параметр в ответе...
{
"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": [
Вы можете использовать шорткод медиа API от instagram. Если вы используете PHP, вы можете использовать следующий код, чтобы получить короткий код с картинки'ы 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, и это методика Deeplink-это уже не нужно.
старые
Свифт 4 коротких-код парсинга решение
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)"
}
То же самое можно реализовать в Python-
import requests,json
def get_media_id(media_url):
url = 'https://api.instagram.com/oembed/?callback=&url=' + media_url
response = requests.get(url).json()
print(response['media_id'])
get_media_id('MEDIA_URL')
В течение периода мне пришлось извлечь медиа ИД себя довольно часто, поэтому я написал свой собственный сценарий (очень вероятно, что это's на основе некоторых примеров, приведенных здесь). Вместе с другими небольших скриптов я часто используется, я начал загружать их на www.findinstaid.com на мой собственный быстрый доступ.
Я добавил возможность ввести имя пользователя, чтобы получить идентификатор носителя из 12 последних сообщений, или введите URL-адрес, чтобы получить идентификатор носителя конкретного поста.
Если это's удобный, каждый может использовать ссылку (я не'Т есть какие-либо добавляет или любых других денежных интересов в сайте - я только реферальную ссылку на 'аудит' Tab, чтобы www.auditninja.io что я и делаю также, но и на этом сайте, нет добавляет или денежные интересы - просто хобби проектов).
Щелкните правой кнопкой мыши на фото и открыть в новой вкладке/окне. Щелкните правой кнопкой мыши на Проверить элемент
. Искать:
instagram://медиа?идентификатор=
Это даст вам:
instagram://медиа?идентификатор=############# /// идентификатор
Полный идентификатор построить из
photoID_userID
Чтобы получить идентификатор пользователя, искать:
instapp:owner_user_id будет в контент=