Как получить логотип компании из LinkedIn API?

Я сделал макет профиля компании на Linkedin и загрузил два изображения (см. скриншот внизу вопроса), и я пытаюсь получить второе изображение (большое).

Я могу получить первое изображение с использованием logo-url и square-logo-url из списка поля профиля компании в документах Linkedin. Информация я вернусь выглядит так:

{
    'logoUrl': 'https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAagAAAAJDMwYzRhOGVmLWU3MzUtNGUyNi05YTgzLWU3MzVhOGViNGYyZA.png',
    'squareLogoUrl': 'https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAS6AAAAJDI4ODQ4NTgxLTQzZGQtNDEzZi1iZjIwLWNiNDgxZTk2NmE5ZA.png',
    'description': "Bla bla",
    etc. etc.
}

ссылки logoUrl и squareLogoUrl связаны с квадратной версией первое изображение.

кто-нибудь знает, как я могу получить большее изображение из API Linkedin? Все ответы приветствуются!

enter image description here

3 ответов


он связывается с двумя отдельными изображениями (имена не совпадают). Поэтому я бы посмотрел на параметры ширины и высоты и увидел, что они используют, чтобы сделать два изображения разными. Итак, первое изображение говорит 100x100, но второе-600x200. Или они!--2-->может использовать одно изображение, но размеры разные.

Я только что посетил ссылку, которую вы предоставили. Обратите внимание на следующее:

.

ваш пример логотипа-url говорит, что это PNG.

JPEG (JPG) используется, потому что он не дает вам jaggies, если вы увеличиваете размер изображения.

Обновление: Тьфу. Я искал какую-то проблему и ответ был прямо передо мной. Просто открыть страницу, щелкните правой кнопкой мыши на большую картинку и выберите "Сохранить Изображение как..."из всплывающего меню. Поскольку это дает вам правильный образ, вы можете нужно очистить исходный код HTML, чтобы найти правильное изображение каждый раз (если вы собираетесь сделать это для нескольких компаний).

enter image description here

Ok-потребовалось некоторое время, чтобы восстановить веб-страницу, которую вы показываете...

вот PHP-скрипт, который извлечет для вас больший логотип. Все, что вам нужно сделать, это добраться до веб-страницы, вам нужно извлечь его из:

<?php

    $a = file_get_contents( "ztmt.htm" );
    $a = str_replace( chr(13), "", $a );
    $a = str_replace( "<", "\n<", $a );
    $b = explode( "\n", $a );

    foreach( $b as $k=>$v ){
        if( preg_match("/hero-img/i",$v) ){
            $c = explode( " ", $v );
            foreach( $c as $k1=>$v1 ){
                if( preg_match("/\s+src\s*=/i", $v1) ){
                    $d = explode( "=", $v1);
                    $loc = substr( $d[1], 1, -1 );
                    echo "You can get the image from\n\n$loc\n";
                    }
                }
            }
        }
?>

Как вы можете видеть, я загрузил исходный код HTML, который отображает веб page (вы можете сделать это в одной строке в PHP), затем он дергает в HTML, разбивает его на одну команду HTML в строке, ищет строку "hero-img", получает путь к этому изображению и распечатывает его.

все, что вам нужно сделать, это написать немного PHP, который отправляет ту компанию, которую вы ищете, в LinkedIn, перейдите на эту веб-страницу, отсосите HTML (который file_get_contents также сделает), а затем пусть скрипт выдернет информацию из этой веб-страницы для вас. Это не исправляет LinkedIn испорченная информация-она просто обходит ее стороной.

надеюсь, это выиграет мне мою зеленую галочку! :-)

BTW: это называется "hero-img" - вы посмотрели, есть ли тег с именем? Просто случайная мысль. Я знаю, что он не указан, но, возможно, LinkedIn так же плох сохранение их документации обновленной, поскольку они отвечают на запросы. :-/

Я бы также проверил "hero-url", так как все остальное- "- url". Просто мысль.


Я немного покопался, но я не могу понять, как самостоятельно. Тем не менее, я нашел нить по этому вопросу, которая может быть полезна - но я не уполномочен смотреть на нее, но, похоже, для вашей точной проблемы. В качестве активного кодера для API разработчика у вас может быть разрешение. Ссылка на страница форума и вы должны увидеть ссылку на вопрос под названием "запрос изображения героя компании через API". Дай мне знать, если это поможет.


вы не можете этого сделать, потому что второе изображение зависит от того, как эта компания разработала свою страницу в linkedin.

компания без второго большого изображения,

https://www.linkedin.com/company/ztrdg

компания со вторым большим изображением, поскольку это не логотип,

https://www.linkedin.com/company/ibm

Так что изображение (большое) не управляется linkedin, конечно, вы не можете получить его от linkedin прикладной программный интерфейс.

единственное, что вы можете сделать, это изменить размер логотипа с хорошим библиотеки изображений. Я предлагаю imgscalr на java.

Если вы хотите получить большое изображение, когда оно существует, вы можете использовать url-адрес компании и получить весь html-документ, а затем найти url-адрес, который находится в классе top-image. И кусок кода:

Document  docu = Jsoup.connect(companyUrl).
            timeout(TIMEOUT).
            userAgent(CRAWLER_NAME).
            get();
Elements elements = document.getElementsByClassName("top-image");