У меня возникли трудности с получением доли на linkedin. Я пытаюсь опубликовать общий ресурс LinkedIn через linkedin api v2, и каждый раз, когда я делаю запрос на публикацию, я получаю ответ с сервера, истекший по времени ожидания (статус 504). Вот мой код:
$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);
Правильный URL-адрес вызова API — https://api.linkedin.com/v2/ugcPosts (вам не нужно включать ?oauth2_access_token= в URL-адрес)
По какой-то причине формат массива заголовков, который вы определили, вызывает ошибку. Поэтому я модифицировал его.
URN-идентификатор человека должен быть заменен идентификатором URN ID пользователя, который должен быть сгенерирован другим вызовом API — см. API-интерфейс URN-идентификатора для получения дополнительной информации о том, как этого добиться.
@Divyashree, ммм ... Я не получаю никаких ошибок. Не могли бы вы обновить весь код, который вы используете прямо сейчас.
@Divyashree ... рад узнать, что вы решили эту проблему. Но я получаю сообщение об ошибке «Предоставлен токен множественного доступа», когда я использую этот URL-адрес, поэтому я изменил его.
ПРОБЛЕМА РЕШЕНА
Добавлен access_token как в URL, так и в заголовок. Теперь код работает. В остальном все остается по-прежнему.
$url = "https://api.linkedin.com/v2/ugcPosts?oauth2_access_token = ".$this->accesstoken;
$headers = array('Content-Type:application/json','X-Restli-Protocol-Version:2.0.0','x-li-format: json','Authorization: Bearer'.$this->accesstoken);
Но как нам получить access_token? Я получаю следующую ошибку. { "serviceErrorCode": 65604, "message": "Пустой токен доступа oauth2", "status": 401 }
Спасибо. Но когда я запускаю модифицированный код, я получаю следующее сообщение об ошибке. {"serviceErrorCode":65604,"сообщение":"Пустой токен доступа oauth2","статус":401}