如何通过Python请求上传文件到Linkedin ?



我试图通过REST API上传视频到LinkedIn。我已经完成了所有的步骤,一切都很好,除了视频上传API。

下面是用于上传视频的curl命令,在LinkedIn的文档中提到:

curl -v -H "Content-Type:application/octet-stream" --upload-file docs/short_video.mp4 'https://api.linkedin.com/mediaUpload/C5400AQHpR1ANqMWqNA/uploadedVideo/0?ca=vector_feedshare&cn=uploads_secure&ccn=ambry-video&m=AQLEZ2pjh43pagYYYXRaCyztOykwDzluHkkYTbsMjNUzivrEOeObw9h3&app=1234&sync=1&v=beta&ut=1KeEm4JnMnJpo1'

当我运行这个curl命令时,视频上传成功,我得到了状态AVAILABLE,但同样的事情与python post请求不工作。

下面是我从curl命令转换过来的python代码:

headers = {
'Content-Type': 'application/octet-stream'
}
filePath = 'docs/short_video.mp4'
files_data = {
'upload_file': (open(filePath, 'rb'))
}
post_url = 'https://api.linkedin.com/mediaUpload/C5400AQHpR1ANqMWqNA/uploadedVideo/0?ca=vector_feedshare&cn=uploads_secure&ccn=ambry-video&m=AQLEZ2pjh43pagYYYXRaCyztOykwDzluHkkYTbsMjNUzivrEOeObw9h3&app=1234&sync=1&v=beta&ut=1KeEm4JnMnJpo1'
req = requests.put(post_url, files=files_data, headers=headers)

我不确定我在python代码中做错了什么。我是不是漏掉了什么?如能提供任何帮助,我将不胜感激。

upload_request_data = response_data['value']['uploadMechanism'][
'com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest'
]
response = requests.post(
upload_request_data['uploadUrl'],
headers=upload_request_data['headers'],
data=open(filePath, 'rb'),
)

最新更新