最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Post in linkedin using API in php - Stack Overflow

programmeradmin1浏览0评论

How can I post on LinkedIn with image in my profile? I have managed to upload a text post, but I need the solution for image post.

Here is the code snippet which I am using for text post,

$post_url = ";;
$post_headers = [
"Authorization: Bearer $access_token",
"Content-Type: application/json",
];

$post_data = [
"author" => "urn:li:person:$person_urn",
"lifecycleState" => "PUBLISHED",
"specificContent" => [
"com.linkedin.ugc.ShareContent" => [
    "shareCommentary" => [
        "text" => "My post content...",
    ],
    "shareMediaCategory" => "TEXT"
],
],
"visibility" => [
"com.linkedin.ugc.MemberNetworkVisibility" => "PUBLIC",
],
];

$post_response = publishPost($post_url, json_encode($post_data), 
$post_headers);

How can I post on LinkedIn with image in my profile? I have managed to upload a text post, but I need the solution for image post.

Here is the code snippet which I am using for text post,

$post_url = "https://api.linkedin/v2/ugcPosts";
$post_headers = [
"Authorization: Bearer $access_token",
"Content-Type: application/json",
];

$post_data = [
"author" => "urn:li:person:$person_urn",
"lifecycleState" => "PUBLISHED",
"specificContent" => [
"com.linkedin.ugc.ShareContent" => [
    "shareCommentary" => [
        "text" => "My post content...",
    ],
    "shareMediaCategory" => "TEXT"
],
],
"visibility" => [
"com.linkedin.ugc.MemberNetworkVisibility" => "PUBLIC",
],
];

$post_response = publishPost($post_url, json_encode($post_data), 
$post_headers);
Share Improve this question asked Feb 4 at 9:04 MSS LLPMSS LLP 234 bronze badges 0
Add a comment  | 

1 Answer 1

Reset to default 3

To post with an image you have to upload the image first and get the asset from LinkedIn. Call the below API for that,

$upload_url = "https://api.linkedin/v2/assets?action=registerUpload";
$upload_headers = [
"Authorization: Bearer $access_token",
"Content-Type: application/json",
];

$upload_data = [
"registerUploadRequest" => [
"owner" => "urn:li:person:$person_urn",
"recipes" => ["urn:li:digitalmediaRecipe:feedshare-image"],
"serviceRelationships" => [
    [
        "identifier" => "urn:li:userGeneratedContent",
        "relationshipType" => "OWNER",
    ],
],
"supportedUploadMechanism" => ["SYNCHRONOUS_UPLOAD"],
],
];

$upload_response = sendCurlRequest($upload_url, 
json_encode($upload_data), $upload_headers);
$upload_response = json_decode($upload_response, true);

if (empty($upload_response["value"]["uploadMechanism"]. 
["com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest"]. 
["uploadUrl"])) {
die("Failed to register upload.");
}

$image_upload_url = $upload_response["value"]["uploadMechanism"]. 
["com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest"]. 
["uploadUrl"];
$asset = $upload_response["value"]["asset"]; // LinkedIn's asset URL

Upload the Image Binary:

$image_headers = [
"Authorization: Bearer $access_token",
"Content-Type: application/octet-stream",
];

$image_binary = file_get_contents('your_image.jpg'); // Read your image file
callCurlRequest($image_upload_url, $image_binary, $image_headers, true);

Now you can publish the Post with that Image, use the asset URL obtained earlier to attach the image to the post.

$post_url = "https://api.linkedin/v2/ugcPosts";
$post_headers = [
"Authorization: Bearer $access_token",
"Content-Type: application/json",
];

$post_data = [
"author" => "urn:li:person:$person_urn",
"lifecycleState" => "PUBLISHED",
"specificContent" => [
"com.linkedin.ugc.ShareContent" => [
    "shareCommentary" => [
        "text" => "Your post content with image...",
    ],
    "shareMediaCategory" => "IMAGE",
    "media" => [
        [
            "status" => "READY",
            "description" => [
                "text" => "Image description...",
            ],
            "media" => $asset,
            "title" => [
                "text" => "Shared via My App",
            ],
        ],
    ],
],
],
"visibility" => [
"com.linkedin.ugc.MemberNetworkVisibility" => "PUBLIC",
],
];

$post_response = sendCurlRequest($post_url, json_encode($post_data), 
$post_headers);
发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>