ByteChef LogoByteChef

LinkedIn

LinkedIn is a professional networking platform that enables users to connect with colleagues, discover job opportunities, and share industry-related content.

Categories: Communication, Social Media

Type: linkedin/v1


Connections

Version: 1

OAuth2 Authorization Code

Properties

NameLabelTypeDescriptionRequired
clientIdClient IdSTRINGtrue
clientSecretClient SecretSTRINGtrue

Connection Setup

To integrate LinkedIn with ByteChef, you will need a LinkedIn account and access to a LinkedIn Company Page.

  1. Go to the https://www.linkedin.com/developers.
  2. Click on My apps.
  3. Click on Create app.
  4. Fill in the required fields:
    • App name: Enter a name for your application (e.g., bytechef integration).
    • LinkedIn Page: Enter a LinkedIn Company Page or use the Create a new LinkedIn Page link to create one on-the-fly.
    • App logo: Upload an image for your application.
    • Legal agreement: Check the box to agree to the Legal agreement.
  5. Click on Create app.
  6. This should open the Products tab. Select the products/APIs you want to enable for your app.
  7. Request access for the Share on LinkedIn
  8. Request access for the Sign In with LinkedIn using OpenID Connect
  9. Go to the Auth tab.
  10. Specify the URL where users will be redirected after authorization (e.g., https://app.bytechef.io/callback)
  11. Copy the Client ID and Client Secret for later use.

To post as an organization, you need to verify your app as being associated with this company.

  1. Go to the Settings tab.
  2. Click Verify.
  3. Click Generate URL.
  4. Copy URL and send it to a Company Page admin for verfication.
  5. Once verification is complete, return to the Products tab and enable the Advertising API to allow posting as an organization.

Actions

Create Post

Name: createPost

Create a post on LinkedIn.

Properties

NameLabelTypeDescriptionRequired
authorPost AsSTRING
Options PERSON, ORGANIZATION
Choose whether to post as a Person or Organization.true
urnnullSTRINGOrganization URNtrue
commentaryTextSTRINGThe user generated commentary for the post.true
contentTypeMedia CategorySTRING
Options ARTICLE, DOCUMENT, IMAGES
Type of media to be posted.false
visibilityVisibilitySTRING
Options PUBLIC, CONNECTIONS
Visibility restrictions on content.true
imagesImagesARRAY
Items [FILE_ENTRY($image)]
Images to be posted.true
sourceArticle URLSTRINGA URL of the article. Typically the URL that was ingested to maintain URL parameters.true
titleArticle TitleSTRINGCustom or saved title of the article.false
descriptionArticle DescriptionSTRINGCustom or saved description of the article.false
thumbnailArticle ThumbnailFILE_ENTRYThe thumbnail image to be associated with the article.false
documentDocumentFILE_ENTRYThe document to be posted.true
titleDocument TitleSTRINGThe title of the document.true

Example JSON Structure

{
  "label" : "Create Post",
  "name" : "createPost",
  "parameters" : {
    "author" : "",
    "urn" : "",
    "commentary" : "",
    "contentType" : "",
    "visibility" : "",
    "images" : [ {
      "extension" : "",
      "mimeType" : "",
      "name" : "",
      "url" : ""
    } ],
    "source" : "",
    "title" : "",
    "description" : "",
    "thumbnail" : {
      "extension" : "",
      "mimeType" : "",
      "name" : "",
      "url" : ""
    },
    "document" : {
      "extension" : "",
      "mimeType" : "",
      "name" : "",
      "url" : ""
    }
  },
  "type" : "linkedin/v1/createPost"
}

Output

Type: STRING

Delete Post

Name: deletePost

Delete a post from LinkedIn.

Properties

NameLabelTypeDescriptionRequired
urnURNSTRINGugcPostUrnshareUrn

Example JSON Structure

{
  "label" : "Delete Post",
  "name" : "deletePost",
  "parameters" : {
    "urn" : ""
  },
  "type" : "linkedin/v1/deletePost"
}

Output

This action does not produce any output.

Triggers

New Post

Name: newPost

Triggers when a new post is created in a specific organization.

Type: POLLING

Properties

NameLabelTypeDescriptionRequired
urnOrganization URNSTRINGURN of the organization to monitor for new posts.true

Output

Type: ARRAY

Items Type: OBJECT

Properties

NameTypeDescription
isReshareDisabledByAuthorBOOLEAN
Options true, false
Indicates whether resharing of the post has been disabled by the author.
createdAtINTEGERTime at which the resource was created in milliseconds since epoch.
lifecycleStateSTRINGThe state of the content.
lastModifiedAtINTEGERTime at which the resource was last modified in milliseconds since epoch.
visibilitySTRINGVisibility restrictions on content.
publishedAtINTEGERThe time at which the content was published represented in epoch time.
authorSTRINGURN of the author of the content.
idSTRINGUnique ID for the object.
distributionOBJECT
Properties {STRING(feedDistribution), [STRING](thirdPartyDistributionChannels)}
Distribution of the post both in LinkedIn and externally.
contentOBJECT
Properties {{STRING(description), STRING(thumbnail), STRING(source), STRING(title)}(article), {STRING(id), STRING(title), STRING(altText)}(media), {[{STRING(id), STRING(title), STRING(altText)}](images), STRING(altText)}(multiImage)}
The posted content.
commentarySTRINGThe user generated commentary for the post.
lifecycleStateInfoOBJECT
Properties {BOOLEAN(isEditedByAuthor)}
Additional information about the lifecycle state for PUBLISH_REQUESTED or PUBLISH_FAILED.

JSON Example

{
  "label" : "New Post",
  "name" : "newPost",
  "parameters" : {
    "urn" : ""
  },
  "type" : "linkedin/v1/newPost"
}

What to do if your action is not listed here?

If this component doesn't have the action you need, you can use Custom Action to create your own. Custom Actions empower you to define HTTP requests tailored to your specific requirements, allowing for greater flexibility in integrating with external services or APIs.

To create a Custom Action, simply specify the desired HTTP method, path, and any necessary parameters. This way, you can extend the functionality of your component beyond the predefined actions, ensuring that you can meet all your integration needs effectively.

How is this guide?

Last updated on

On this page