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
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| clientId | Client Id | STRING | true | |
| clientSecret | Client Secret | STRING | true |
Connection Setup
To integrate LinkedIn with ByteChef, you will need a LinkedIn account and access to a LinkedIn Company Page.
- Go to the
https://www.linkedin.com/developers. - Click on My apps.
- Click on Create app.
- 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.
- App name: Enter a name for your application (e.g.,
- Click on Create app.
- This should open the Products tab. Select the products/APIs you want to enable for your app.
- Request access for the Share on LinkedIn
- Request access for the Sign In with LinkedIn using OpenID Connect
- Go to the Auth tab.
- Specify the URL where users will be redirected after authorization (e.g.,
https://app.bytechef.io/callback) - 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.
- Go to the Settings tab.
- Click Verify.
- Click Generate URL.
- Copy URL and send it to a Company Page admin for verfication.
- 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
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| author | Post As | STRING OptionsPERSON, ORGANIZATION | Choose whether to post as a Person or Organization. | true |
| urn | null | STRING | Organization URN | true |
| commentary | Text | STRING | The user generated commentary for the post. | true |
| contentType | Media Category | STRING OptionsARTICLE, DOCUMENT, IMAGES | Type of media to be posted. | false |
| visibility | Visibility | STRING OptionsPUBLIC, CONNECTIONS | Visibility restrictions on content. | true |
| images | Images | ARRAY Items[FILE_ENTRY($image)] | Images to be posted. | true |
| source | Article URL | STRING | A URL of the article. Typically the URL that was ingested to maintain URL parameters. | true |
| title | Article Title | STRING | Custom or saved title of the article. | false |
| description | Article Description | STRING | Custom or saved description of the article. | false |
| thumbnail | Article Thumbnail | FILE_ENTRY | The thumbnail image to be associated with the article. | false |
| document | Document | FILE_ENTRY | The document to be posted. | true |
| title | Document Title | STRING | The 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
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| urn | URN | STRING | ugcPostUrn | shareUrn |
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
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| urn | Organization URN | STRING | URN of the organization to monitor for new posts. | true |
Output
Type: ARRAY
Items Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| isReshareDisabledByAuthor | BOOLEAN Optionstrue, false | Indicates whether resharing of the post has been disabled by the author. |
| createdAt | INTEGER | Time at which the resource was created in milliseconds since epoch. |
| lifecycleState | STRING | The state of the content. |
| lastModifiedAt | INTEGER | Time at which the resource was last modified in milliseconds since epoch. |
| visibility | STRING | Visibility restrictions on content. |
| publishedAt | INTEGER | The time at which the content was published represented in epoch time. |
| author | STRING | URN of the author of the content. |
| id | STRING | Unique ID for the object. |
| distribution | OBJECT Properties{STRING(feedDistribution), [STRING](thirdPartyDistributionChannels)} | Distribution of the post both in LinkedIn and externally. |
| content | OBJECT 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. |
| commentary | STRING | The user generated commentary for the post. |
| lifecycleStateInfo | OBJECT 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