如何使用REST-API v2在LinkedIn上共享? [英] How to share on LinkedIn using REST-API v2?
问题描述
我很难在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);
-
正确的API调用URL是-
https://api.linkedin.com/v2/ugcPosts
(您不必在URL中包含?oauth2_access_token=
)
The correct API call URL is -
https://api.linkedin.com/v2/ugcPosts
(You don't have to include?oauth2_access_token=
in the URL)
由于某些原因,您定义的标头数组的格式引发错误.所以我修改了它.
For some reason, the format of the headers array that you defined is throwing an error. So I have modified it.
人的URN ID 必须替换为必须由另一个API调用生成的用户的URN ID-请参见
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屋!