首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinkedIn视频测试版终端出现500个错误

LinkedIn视频测试版终端出现500个错误
EN

Stack Overflow用户
提问于 2021-11-03 03:06:10
回答 1查看 84关注 0票数 0

我在LinkedIn视频测试版中,正在尝试通过应用编程接口上传视频。https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/videos-api-beta?tabs=http#upload-the-video

由于文件超过4mb,我根据需要将其拆分,并根据我所能告诉我的视频的所有部分成功上传。我还记录了每个部分的etag,以便最终完成上传。

端点videos?action=finalizeUpload将返回带有消息网关超时的504。我在内部使用的客户端使用Guzzle,我试图增加超时,但我确信这不是问题所在。原因是,如果我加载带有urlencoded视频URN的视频,我将收到带有消息内部服务器错误的500状态。

代码语言:javascript
复制
$userUrn = 'urn:li:person:[urn]';
// register the upload, returns the upload urls
$registerResult = $client->post(
    'videos?action=initializeUpload',
    [
        "initializeUploadRequest" => [
            'owner' => $userUrn,
            "purpose" => 'FEED_VIDEO',
            "fileSizeBytes" => filesize($videoFile),
            "uploadCaptions" => false,
            "uploadThumbnail" => false
        ]
    ]
);
$videoUrn = $registerResult['value']['video'];
$uploadToken = $registerResult['value']['uploadToken'];
// split the video file into parts
exec('split -b 4194303 "' . $videoFile . '"');
$file = 'xaa';
$etags = [];
foreach($registerResult['value']['uploadInstructions'] as $i => $uploadInstructions) 
{
    $filePath = __DIR__ . '/' . $file;
    // upload the part
    $shellCmd = 'curl -v -H "Content-Type:application/octet-stream" --upload-file "' . $filePath . '" "' . $uploadInstructions['uploadUrl'] . '" 2>&1';
    exec($shellCmd, $o);
    $matches = [];
    preg_match('/(etag:)(\s?)(.*)(\n)/', implode("\n", $o), $matches);
    $etags[] = $matches[3]
    $file++;
}
// in this prototype just remove all of these files
exec("rm xa*");

$videoStatus = $client->post(
    "videos?action=finalizeUpload",
    [
        "finalizeUploadRequest" => [
            "video" => $videoUrn,
            "uploadToken" => $uploadToken,
            "uploadedPartIds" => $etags
        ]
    ]
);

我还手动验证了,在我的视频上使用split和cat确实会生成与原始视频完全相同的副本。(不过,我不能确定LinkedIn在做什么)

第一个请求initializeUpload将返回数据,其中包含视频urn、upload token (通常为空,但我一直在获取它)和upload指令。所以我知道客户端是有效的。此外,上传视频部分的curl命令似乎也起作用了。它返回etag,我将其放入一个数组中发送回来。

正如标题所示,这个特性目前是Beta版,但我没有被告知要在任何地方提供关于beta版的反馈,并且API帮助确实表明要发布问题。

EN

回答 1

Stack Overflow用户

发布于 2021-11-04 11:40:54

我看到LinkedIn文档引用了错误的(EI) URL here。你应该使用

代码语言:javascript
复制
https://api.linkedin.com/v2/videos?action=finalizeUpload

而不是

代码语言:javascript
复制
https://api.linkedin-ei.com/v2/videos?action=finalizeUpload
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69819215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档