es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo publicar en la página de la empresa de LinkedIn en lugar de la página personal.

Ha pasado una semana y no puedo publicar en la página de la empresa.
El código de abajo funciona, pero lo está enviando a mi perfil personal en lugar de a la página de la empresa.
¿Alguien me puede aconsejar, por favor?

<?php
require_once '../vendor/autoload.php';
use GuzzleHttp\Client;

$link = 'www.google.com';
$access_token = 'MI_TOKEN_DE_ACCESO';
$linkedin_id = 'EWg7hNHQ9F';

$body = new \stdClass();
$body->content = new \stdClass();
$body->content->contentEntities[0] = new \stdClass();
$body->text = new \stdClass();
$body->content->contentEntities[0]->thumbnails[0] = new \stdClass();
$body->content->contentEntities[0]->entityLocation = $link;
$body->content->contentEntities[0]->thumbnails[0]->resolvedUrl = "https://picsum.photos/200/300";
$body->content->title = 'Solo para pruebas';
$body->owner = 'urn:li:person:'.urlencode($linkedin_id);
$body->text->text = 'Resumen de prueba';
$body_json = json_encode($body, true);

try {
    $client = new Client(['base_uri' => 'https://api.linkedin.com']);
    $response = $client->request('POST', '/v2/shares', [
    // $response = $client->request('POST', '/v2/ugcPosts', [
        'headers' => [
            'X-Restli-Protocol-Version' => '2.0.0',
            "Authorization" => "Bearer " . $access_token,
            "Content-Type"  => "application/json",
            // "x-li-format"   => "json"
        ],
        'body' => $body_json,
    ]);

    if ($response->getStatusCode() !== 201) {
        echo 'Error: ' . $response->getLastBody()->errors[0]->message;
    }

    echo 'La publicación se ha compartido en LinkedIn correctamente.';
} catch(Exception $e) {
    echo $e->getMessage(). ' para el enlace ' . $link;
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema puede deberse a que $linkedin_id se establece como el ID del perfil del usuario en lugar de la página de la empresa.

    Para publicar en una página de empresa usando la API de LinkedIn, el campo owner debe establecerse como el URN de la página de la empresa. Esto se puede obtener a través de la API haciendo una solicitud GET a /v2/organizationalEntityAcls?q=roleAssignee&role=ADMINISTRATOR y verificando la respuesta para la página de la empresa.

    Una vez obtenido el URN de la página de la empresa, actualiza el campo $body->owner con el URN y vuelve a intentar la publicación.

    Por ejemplo:

    $body->owner = "urn:li:organization:{company-page-id}";
    

    Reemplaza {company-page-id} con el URN de la página de la empresa.

Comments are closed.