如何使用 REST-API v2 在 LinkedIn 上分享? [英] How to share on LinkedIn using REST-API v2?

查看:35
本文介绍了如何使用 REST-API v2 在 LinkedIn 上分享?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我很难在linkedin上获得分享.我正在尝试通过linkedin api v2发布LinkedIn共享,每次我发出发布请求时,我都会收到来自服务器的请求超时(状态504)答案.这是我的代码:

I am having difficulty getting a share on linkedin. I am trying to post a LinkedIn share via linkedin api v2 and everytime I make the post request I get a request timed out (status 504) answer from the server. Here is my code :

$url = https://api.linkedin.com/v2/ugcPosts?oauth2_access_token=".$row[0]['accesstoken'];
$fields = '{
    "author": "urn:li:person:XXX",
    "lifecycleState": "PUBLISHED",
    "specificContent": {
        "com.linkedin.ugc.ShareContent": {
            "shareCommentary": {
                "text": "Hello World! This is my first Share on LinkedIn!"
            },
            "shareMediaCategory": "NONE"
        }
    },
    "visibility": {
        "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
    }
}';

$headers = array(
 'Content-Type' => 'application/json',
 'X-Restli-Protocol-Version' => '2.0.0'
 'Authorization' => 'Bearer'. $token);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($curl);

And here is the error message :
{
  "message": "Request timed out",
  "status": 504
}

推荐答案

试试下面的代码:

$url = "https://api.linkedin.com/v2/ugcPosts";

$headers = array('Content-Type: application/json','X-Restli-Protocol-Version: 2.0.0','x-li-format: json','Authorization: Bearer '.$token);

$fields = '{
    "author": "urn:li:person:*Person URN ID*",
    "lifecycleState": "PUBLISHED",
    "specificContent": {
        "com.linkedin.ugc.ShareContent": {
            "shareCommentary": {
                "text": "Hello World! This is my first Share on LinkedIn!"
            },
            "shareMediaCategory": "NONE"
        }
    },
    "visibility": {
        "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
    }
}';


$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
$httpCode = curl_getinfo($curl , CURLINFO_HTTP_CODE); // this results 0 every time
$response = curl_exec($curl);

if ($response === false) 
    $response = curl_error($curl);

echo stripslashes($response);

curl_close($curl);

  1. 正确的 API 调用 URL 是 - https://api.linkedin.com/v2/ugcPosts(您不必包含 ?oauth2_access_token= 在 URL 中)

  1. The correct API call URL is - https://api.linkedin.com/v2/ugcPosts (You don't have to include ?oauth2_access_token= in the URL)

出于某种原因,您定义的 headers 数组的格式引发了错误.所以我修改了它.

For some reason, the format of the headers array that you defined is throwing an error. So I have modified it.

个人 URN ID 必须替换为用户的 URN ID,该 ID 必须由另一个 API 调用生成 - 请参阅URN ID API 了解如何实现这一目标的更多详细信息.

The Person URN ID has to be replaced by the URN ID of the user which has to be generated by another API call - see URN ID API for more details on how to achieve that.

这篇关于如何使用 REST-API v2 在 LinkedIn 上分享?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆