Как получить логотип компании от 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 связаны с квадратная версия первого изображения.

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

введите описание изображения здесь

Ответ 1

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

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

logo-url

URL-адрес логотипа компании в формате JPG.

Ваш пример logo-url говорит, что он PNG.

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

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

введите описание изображения здесь

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

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

<?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, который отображает веб-страницу (вы можете сделать это в одной строке на PHP), затем он дергает в HTML, разбивает его на одну HTML-команду на строку, ищет строка "hero-img", получает путь к этому изображению и выводит его.

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

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

Надеюсь, это победит меня в моей зеленой галочке!: -)

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

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

Ответ 2

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

Ответ 3

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

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

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

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

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

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

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

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

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