How To Integrate Drupal with the LinkedIn API

By Xandermar LLC, December 7, 2023

To integrate Drupal with the LinkedIn API, you can use the OAuth and LinkedIn Integration modules. Below are the steps to achieve this integration:

  1. Create a LinkedIn App:
    • Go to the LinkedIn Developer Portal and create a new app.
    • Fill out the required information, including the Application Name, Company, and Application Description.
    • Provide the required permissions for your app. For posting to LinkedIn, you'll need the "rw_organization_admin" and "w_member_social" permissions.
    • Obtain the Client ID and Client Secret.
  2. Install and Configure Modules:

    • Install the LinkedIn Integration and OAuth modules on your Drupal site. You can do this using the Drupal admin interface or by using Drush or Composer.
    # Using Drush
    drush dl linkedin oauth
    drush en linkedin oauth
    • Configure the OAuth module:
      • Navigate to admin/config/services/oauth.
      • Add a new OAuth2 server. Enter the Client ID and Client Secret obtained from the LinkedIn Developer Portal.
      • Save the configuration.
    • Configure the LinkedIn Integration module:
      • Navigate to admin/config/linkedin.
      • Enter the API Key and Secret obtained from the LinkedIn Developer Portal.
      • Save the configuration.
  3. Authentication:
    • Navigate to admin/config/linkedin/auth to authenticate your Drupal site with LinkedIn.
    • Follow the instructions to authorize your site and obtain an access token.
  4. Auto-Posting:
    • Develop a custom module or use existing modules to handle content creation and posting to LinkedIn.
    • You can use Drupal's hooks, such as hook_cron or other event triggers, to periodically check for new content and post it to LinkedIn using the LinkedIn Integration module.

Here is a simple example of how you might use the LinkedIn Integration module in a custom module:

use Drupal\linkedin_integration\LinkedInIntegrationServiceInterface;

 * Implements hook_cron().
function mymodule_cron() {
  // Get the LinkedIn Integration service.
  $linkedin_integration = \Drupal::service('linkedin_integration');

  // Check if the integration is configured.
  if ($linkedin_integration->isConfigured()) {
    // Get the access token.
    $access_token = $linkedin_integration->getAccessToken();

    // Check if access token is valid.
    if ($access_token) {
      // TODO: Fetch and post new content to LinkedIn.
  1. Security:
    • Ensure that you follow best practices for security when dealing with external APIs. Handle authentication securely and protect sensitive information.
  2. Approval from LinkedIn:
    • Keep in mind that automated posting to LinkedIn may require approval from LinkedIn. Submit your app for review through the LinkedIn Developer Portal.

Always refer to the documentation of the LinkedIn Integration and OAuth modules for any specific configuration details or updates.