На этот вызов ссылаются в шаге 2 документов здесь
Я следую за документами, чтобы создать общий доступ к изображениям и текстам в LinkedIn через API версии 2.Следуя инструкциям в документации, я завершил каждый шаг с успешным ответом.Однако мое сообщение не существует в LinkedIn и не может быть просмотрено по прямой ссылке на основе идентификатора, возвращенного запросом API
При отладке я сделал запрос на получение https://api.linkedin.com/v2/assets/C5622AQFbyxMfU2b9zg. Это для получениямедиаресурс (документы здесь ), созданный на первом шаге.Он вернул следующий json со статусом «CLIENT_ERROR».Однако, если вы посмотрите на документы, это не тот статус, который указан для поля
{
"serviceRelationships": [
{
"identifier": "urn:li:userGeneratedContent",
"relationshipType": "OWNER"
}
],
"recipes": [
{
"recipe": "urn:li:digitalmediaRecipe:feedshare-image",
"status": "CLIENT_ERROR"
}
],
"mediaTypeFamily": "STILLIMAGE",
"created": 1550875198973,
"lastModified": 1550875199857,
"id": "C5622AQFbyxMfU2b9zg",
"status": "ALLOWED"
}
Мне удалось успешно загрузить файл с помощью командной строки curl.Кажется, проблема в моей реализации PHP.В частности, загрузка двоичного файла не работает правильно.Вот упрощенное представление моего php-кода.
$ch = curl_init();
$headers = [
'Authorization: Bearer ' . $this->accessToken->access_token,
'Cache-Control: no-cache',
'X-RestLi-Protocol-Version: 2.0.0',
'x-li-format: json',
'Content-Type: ' . $this->mimetype
];
$data = [
'file' => curl_file_create($filename, $this->mimetype);
];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_URL, 'https://api.linkedin.com/mediaUpload/C5622AQHSLBWkZeg-gQ/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQJIFvVUxXl7yAAAAWkwjT0kEPKHY5BnAgXETcVQ3AbsxmvaGl6hnuECwA&app=22961836&sync=0&v=beta&ut=2RaKRdHD_OwUE1');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
print_r($result);