LinkedIn API Python 라이브러리

38217 단어 pythonlinkedinapi
Linkedin은 영향력 있는 비즈니스 관련 소셜 네트워킹 플랫폼으로 다양한 장소, 문화 및 산업 분야의 사람들이 네트워크를 만들고 확장할 수 있도록 합니다. 따라서 LinkedIn은 모든 성공 가방 안에 있는 중요한 도구 중 하나입니다.

오늘날 전문 조직 및 직원은 Linkedin을 비즈니스의 주요 소셜 플랫폼으로 간주하고 조직은 LinkedIn을 사용하여 재능 있는 사람을 찾고 재능 있는 사람은 최고의 조직에서 찾을 수 있도록 자신의 프로필과 활동을 관리합니다.

조직과 직원 모두에게 이 모든 것을 쉽고 빠르게 만들기 위해 Linkedin API와 협업하고 몇 초 안에 결과를 얻을 수 있는 많은 도구가 있습니다. 이러한 도구 중 하나는 Linkedin Python API입니다. 자세히 살펴보겠습니다!

목차 📒




  • Getting Started ▶️

  • Fetching Profile Details ℹ️

  • Connections Management 🌐

  • Retrieve and Reply Messages 💬

  • What's next?

  • Linkedin Python API란 무엇입니까? ❓



    Linkedin API용 Python 래퍼로, 자신의 스크립트에서 LinkedIn API와 상호 작용하여 메시지 보내기, 프로필 검색, 구직 등과 같은 다양한 작업을 수행하는 데 도움이 됩니다. 가장 멋진 부분은 공식 LinkedIn 앱을 만들지 않고 일반 LinkedIn 계정만 있으면 된다는 것입니다.

    이 프로젝트를 사용하기 전에 상담 및

    시작하기 ▶️



    ⚠️ Python >= 3.6 required



    체크python installation.

    패키지를 설치하려면 다음 명령을 실행하십시오.

    pip3 install linkedin-api
    


    사용 예

    from linkedin_api import Linkedin
    
    # Authenticate using any Linkedin account email and password
    try:
        api = Linkedin('[email protected]', 'password')
        profile = api.get_profile('muhammedmoussa')
        print(profile)
    except:
      print("An exception occurred")
    


    프로필 가져오기의 샘플 응답입니다.

    {
      "summary": "...",
      "industryName": "Financial Services",
      "lastName": "Moussa ✪",
      "address": "Hurghada, Egypt",
      "locationName": "Egypt",
      "student": false,
      "geoCountryName": "Egypt",
      "geoCountryUrn": "urn:li:******",
      "geoLocationBackfilled": false,
      "elt": false,
      "birthDate": {},
      "industryUrn": "urn:li:fs_industry:43",
      "firstName": "Muhammed ",
      "entityUrn": "urn:li:fs_profile:ACoAABT1wOkBUgS77T0NG2puPbStCWKVLIJHUaE",
      "geoLocation": {},
      "geoLocationName": "Hurghada, Al Bahr al Ahmar",
      "location": {},
      "headline": "JavaScript Developer at Paymob",
      "displayPictureUrl": "https://media-exp2.licdn.com/dms/image/C5603AQHwEFZkUOXalw/profile-displayphoto-shrink_",
      "img_100_100": "100_100/0/1647527431537?e=1663804800&v=beta&t=ILGlsVPFkYE6ScB9IXx8JX1o5j4SqVCFGVRlKgPPpmg",
      "img_200_200": "200_200/0/1647527431537?e=1663804800&v=beta&t=VfEVqlmBJPPgan1tBguYDmRHPTTHSgcY83fSp7GNd-E",
      "img_400_400": "400_400/0/1647527431537?e=1663804800&v=beta&t=zN_GOz0Y4PG3ZZMa2xqpNAyg704CE5qkP-_m-wyBl3w",
      "img_800_800": "800_800/0/1647527431537?e=1663804800&v=beta&t=k7971X7dfIT-iY-Ng0QNuInX74BhahiRviMyZESBW8w",
      "profile_id": "ACoAABT1wOkBUgS77T0NG2puPbStCWKVLIJHUaE",
      "profile_urn": "urn:li:fs_miniProfile:ACoAABT1wOkBUgS77T0NG2puPbStCWKVLIJHUaE",
      "member_urn": "urn:li:member:351650025",
      "experience": [],
      "education": [],
      "languages": [],
      "publications": [],
      "certifications": [],
      "volunteer": [],
      "honors": [],
      "projects": []
    }
    


    프로필 세부 정보를 가져오는 중 ℹ️



    패키지에는 위에서 언급한 get_profile() 방법 외에도 LinkedIn 프로필 세부 정보와 상호 작용하는 일련의 마법 방법이 있습니다. 다음은 이러한 방법 중 일부 목록입니다.

    from linkedin_api import Linkedin
    
    try:
        api = Linkedin('[email protected]', 'password')
    
        # Getting profile skills using Linkedin public profile id
        skills = api.get_profile_skills('muhammedmoussa')
        print(skills)
    
        # Getting profile contact info using Linkedin public profile id
        contact_info = api.get_profile_contact_info('muhammedmoussa')
        print(contact_info)
    
        # Getting profile badges using Linkedin public profile id
        badges = api.get_profile_member_badges('muhammedmoussa')
        print(badges)
    
    except:
      print("An exception occurred")
    


    플러그인의 더 나은 비전을 위해 이러한 방법의 샘플 응답이 있습니다.

    // skills
    [
      {"name": "JavaScript"},
      {
        "name": "TypeScript",
        "standardizedSkillUrn": "urn:li:fs_miniSkill:50517",
        "standardizedSkill": {
          "name": "TypeScript",
          "entityUrn": "urn:li:fs_miniSkill:50517"
        }
      },
      {"name": "Node.js"},
      {"name": "MongoDB"},
      {"name": "Python"},
      ...
    ]
    
    // contact_info
    {
       "email_address":"[email protected]",
       "websites":[
          {
             "url":"https://muhammedmoussa.github.io/",
             "label":"PERSONAL"
          }
       ],
       "twitter":[
          {
             "name":"muhammedMoussa",
             "credentialId":"urn:li:member:351650025;345345825"
          }
       ],
       ...
    }
    
    // badges
    {
       "premium":false,
       "influencer":false,
       "entityUrn":"urn:li:fs_memberBadges:******",
       "openLink":false,
       "jobSeeker":false,
       "$type":"com.linkedin.voyager.identity.profile.MemberBadges"
    }
    


    연결 관리 🌐



    또한 이 패키지에는 기존 연결 추가, 언팔로우 또는 제거, 검색 및 초대 수락과 같은 다양한 네트워크 연결 항목을 관리하고 제어하는 ​​일련의 마법 방법이 있습니다. 또한 아래에 이러한 방법 중 일부 목록이 있습니다.

    from linkedin_api import Linkedin
    
    try:
        api = Linkedin('[email protected]', 'password')
    
        # Send connection request to a given profile id, will return a boolean.
        api.add_connection('muhammedmoussa')
    
        # Remove a connection with a given profile id, will return a boolean.
        api.remove_connection('muhammedmoussa')
    
        # Fetch connection invitations for the currently logged in user with start and limit params.
        invitations = api.get_invitations(start=0, limit=3)
        print(invitations)
    
        # Unfollow a given profile id, will return a boolean.
        api.unfollow_entity('muhammedmoussa')
    
    except:
      print("An exception occurred")
    


    초대장 가져오기의 샘플 응답.

    [
      {
        "mailboxItemId": "*******",
        "toMemberId": "*******",
        "fromMember": {
          "memorialized": false,
          "firstName": "Muhammed ",
          "lastName": "Moussa",
          "entityUrn": "urn:li:fs_miniProfile:******",
          "publicIdentifier": "muhammedmoussa",
          "trackingId": "P8mZOe9HRLO5L84xOoN16g=="
        },
        "invitee": {},
        "invitationType": "PENDING",
        "entityUrn": "urn:li:fs_relInvitation:6954589454917320704",
        "toMember": {},
        "inviterActors": [],
        "sentTime": 1658103366339,
        "customMessage": false,
        "sharedSecret": "******",
        "unseen": true
      }
    ]
    


    메시지 검색 및 회신 💬



    마지막으로 패키지에는 메시지 검색 및 전송과 같은 대화 항목을 처리하는 일련의 마법 방법도 있습니다. 다음은 이러한 방법 중 일부 목록입니다.

    from linkedin_api import Linkedin
    
    try:
        api = Linkedin('[email protected]', 'password')
    
        # Fetch list of conversations logged in user. return list.
        conversations = api.get_conversations()
        print(conversations)
    
        # Fetch conversation (message thread) details for a given LinkedIn profile. return dictionary.
        api.get_conversation_details('urn:li:fs_miniProfile:********')
    
        # Send a message to a given conversation. return boolean
        api.send_message('Hello There!', 'urn:li:fsd_conversation:********')
    
        # Send `seen` to a given conversation. return boolean.
        mark_conversation_as_seen('urn:li:fsd_conversation:********')
    
    except:
      print("An exception occurred")
    


    대화 가져오기의 샘플 응답입니다.

    {
      "metadata": {
        "unreadCount": 0
      },
      "elements": [
        {
          "dashEntityUrn": "urn:li:fsd_conversation:*****",
          "notificationStatus": "ACTIVE",
          "read": true,
          "groupChat": false,
          "totalEventCount": 2,
          "unreadCount": 0,
          "lastActivityAt": 1658148419804,
          "firstMessageUrn": "urn:li:fs_event:(*****,2-MTY1ODEwNDYyNzczOGI4ODE2Mi0wMDQmY2I0M2UwZDctZmM5ZS00NmY0LTg3OWQtNGVhMGIyYzgxZmM1XzAxMw==)",
          "backendUrn": "urn:li:messagingThread:*****",
          "receipts": [
            {
              "fromEntity": "urn:li:fs_miniProfile:******",
              "seenReceipt": {
                "seenAt": 1658148419629,
                "eventUrn": "urn:li:fs_event:(*****,******)"
              },
              "fromParticipant": {
                "string": "urn:li:member:351650025"
              }
            }
          ],
          "lastReadAt": 1658148672641,
          "archived": false,
          "blocked": false,
          "entityUrn": "urn:li:fs_conversation:*****",
          "sdkEntityUrn": "urn:li:msg_conversation:(urn:li:fsd_profile:******,*****)",
          "viewerCurrentParticipant": true,
          "featureTypes": [],
          "withNonConnection": false,
          "muted": false,
          "events": [
            {
              "createdAt": 1658148419796,
              "reactionSummaries": [],
              "dashEntityUrn": "urn:li:fsd_message:******",
              "quickReplyRecommendations": [],
              "entityUrn": "urn:li:fs_event:(*****,******)",
              "eventContent": {
                "com.linkedin.voyager.messaging.event.MessageEvent": {
                  "messageBodyRenderFormat": "DEFAULT",
                  "body": "",
                  "attributedBody": {
                    "text": "How are you?"
                  }
                }
              },
              "subtype": "MEMBER_TO_MEMBER",
              "from": {
                "com.linkedin.voyager.messaging.MessagingMember": {
                  "miniProfile": {
                    "memorialized": false,
                    "firstName": "Muhammed ",
                    "lastName": "Moussa ✪",
                    "dashEntityUrn": "urn:li:fsd_profile:******",
                    "entityUrn": "urn:li:fs_miniProfile:******",
                    "backgroundImage": {},
                    "publicIdentifier": "muhammedmoussa",
                    "picture": {},
                    "trackingId": "gHcY3a/hRK6s0z/HDf7cTg=="
                  },
                  "entityUrn": "urn:li:fs_messagingMember:(*****,******)",
                  "nameInitials": "MM"
                }
              },
              "previousEventInConversation": "urn:li:fs_event:(*****,2-MTY1ODEwNDczMDM3OWIyMzUzMi0wMDQmY2I0M2UwZDctZmM5ZS00NmY0LTg3OWQtNGVhMGIyYzgxZmM1XzAxMw==)",
              "backendUrn": "urn:li:messagingMessage:******"
            }
          ],
          "participants": []
        }
      ],
      "paging": {
        "count": 20,
        "start": 0,
        "links": []
      }
    }
    


    전달하는 URLurn 대신 여기에서 매개변수가 다른 것을 발견할 수 있습니다. 이것은 여기에서 가장 중요한 핵심 개념 중 하나URN IDs and public IDs.로 이어집니다.
  • URN ID: URN(Uniform Resource Name)은 urn 체계를 사용하는 URI(Uniform Resource Identifier)입니다. URN은 전역적으로 고유합니다. LinkedIn 프로필 URN의 예: urn:li:fs_miniProfile:ACoAABQ11fIBQLGQbB1V1XPBZJsRwfK5r1U2Rzt
  • URL : 구어체로 웹 주소라고 하는 URL(Uniform Resource Locator)은 컴퓨터 네트워크에서 해당 위치를 지정하는 웹 리소스에 대한 참조입니다. LinkedIn 프로필 URL의 예: https://www.linkedin.com/in/muhammedmoussa/

  • 이에 대한 자세한 내용과 패키지가 LinkedIn API와 작동하는 방식은 다음을 확인하십시오.

    무엇 향후 계획? ⏭



    우리는 위에서 언급했듯이 LinkedIn Python API 패키지와 그 기능 중 일부를 살펴보았습니다. 위에서 언급했듯이 LinkedIn은 모든 전문가, 특히 기존 구인 광고, 인재 사냥 또는 일반적으로 채용 프로세스를 업그레이드하기 위해 통곡할 때 조직을 위한 도구입니다. 그래서 오늘날 우리는 LinkedIn 또는 사람 데이터 위에서 작동하고 판도를 바꿀 수 있는 훌륭한 도구를 제공하는 많은 도구를 가지고 있습니다. 다음은 일부 서비스 목록입니다.
  • Proxycurl by Nubela
  • LinkDB

  • 좋은 웹페이지 즐겨찾기