当前位置: 首页 > 面试题库 >

与linkedin v2 api共享的图像未发布在页面供稿上

松秦斩
2023-03-14
问题内容

好的,所以这是我的问题。.要通过linkedin
api共享图像发布,您首先必须注册图像文件,然后通过发送二进制文件的发布请求来完成此操作。然后,您使用原始请求中的图片URN提交您的帖子。我的请求经过处理,返回201代码(应该是成功的请求),但最终没有发布图像或文本。如果我尝试仅发布文本,则可以。我尝试使用curl注册我的图像,并将其发布在linkedin上,所以我认为我没有在请求中正确发送二进制文件,这是我的请求:

            HttpClient client = HttpClientBuilder.create().build();
            HttpPut request = new HttpPut(uploadUrl);
            request.addHeader("Content-Type", "data/binary");
            request.setHeader("X-Restli-Protocol-Version", "2.0.0");
            request.setHeader("Authorization", "Bearer " + myToken);

            File file = new File(pictureUrl);

            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
            builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
            builder.addBinaryBody("upload-file", file);
            request.setEntity(builder.build());
            HttpResponse response = client.execute(request);

我收到带有此代码的代码201,但仍未发布。这是他们在Share API doc上发出的请求的curl示例。

curl -i --upload-file /Users/peter/Desktop/superneatimage.png --header "Authorization: Bearer redacted" 'https://api.linkedin.com/mediaUpload/C5522AQGTYER3k3ByHQ/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQJbrN86Zm265gAAAWemyz2pxPSgONtBiZdchrgG872QltnfYjnMdb2j3A&app=1953784&sync=0&v=beta&ut=2H-IhpbfXrRow1'

你能告诉我我的Java对等程序有什么问题吗?

编辑:忘了说我什至尝试从java调用curl,这与我在终端中使用的代码相同,但仍然无法正常工作。

        Process p;
        try {
            p = Runtime.getRuntime().exec("curl -i --upload-file" + " " + pictureUrl + " " + "--header \"Authorization: Bearer " + myToken + "\" '" + uploadUrl + "'");
            p.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

            String line = "";
            String outputController = "";
            while ((line = reader.readLine()) != null) {
                outputController = outputController + '\n' + line;
            }
            System.out.println("out: ");
            System.out.println(outputController);
            return true;
        } catch (IOException | InterruptedException ex) {
            return false;
        }

输出返回空字符串。

Edit2:另一个有趣的事情是,当我执行主要请求时,在其中发送文本,以及提交图像后收到的媒体,,我再次获得201,就像成功一样,并且在响应中我甚至得到了帖子ID。然后,我尝试使用另一个api端点,并使用从响应中获取的ID提取该帖子,然后获取所有数据,就像该帖子一样。它甚至在json中说我知道生命周期已发布,媒体的状态为READY。唯一与json上的图像帖子不同的是媒体对象具有缩略图,在这种情况下,它们没有缩略图,只是一个空的json数组。


问题答案:

好的,我已经解决了,如果有人遇到相同的问题,这就是我做错的。在请求中,我向请求正文添加了一个多部分,这是错误的,您只需要进行RAW处理即可。所以代替

    File file = new File(pictureUrl);
    MultipartEntityBuilder builder = MultipartEntityBuilder.create();
    builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
    builder.addBinaryBody("upload-file", file);
    request.setEntity(builder.build());

你刚放

request.setEntity(new FileEntity(new File(pictureUrl), ContentType.create(picture.getContentType())));

然后一切正常。



 类似资料:
  • 好吧,这就是我的问题。。要通过linkedin api共享图像帖子,首先必须注册图像文件,然后通过发送二进制文件的post请求进行注册。然后使用原始请求中的图像URN提交帖子。我的请求通过,返回201代码(这应该是一个成功的请求),但最终没有发布图像或文本。如果我试着只发文本,它会起作用。我曾尝试使用curl注册我的图像,并将其发布在linkedin上,因此我认为我没有在请求中正确发送二进制文件,

  • 当我们共享这样的链接时,我们如何在我们的网站中包含一个图像来显示在WhatsApp中?

  • 问题内容: 当我们 共享这样的链接时,如何在我们的网站中包含图片以显示在WhatsApp中? 问题答案: 2020年标准 只需几步即可为WhatsApp,Twitter,Facebook和PC和移动设备的书签图标获得完美的预览。如果您喜欢阅读, 请访问ogp.me-但请务必阅读此答案中的步骤1-6,以获取最佳的WhatsApp预览。 请注意:某些应用或网站使用缓存,甚至将网站 预览存储到其数据库中

  • 有没有一种方法可以让我使用任何插件并显示或特定的图像库?创建或编辑文本生成器下方或上方的页面时,图像库上载区域应显示在页面中,或者至少应显示在页面中。而且这个图库不应该是wordpress的默认图像图库,或者至少不应该显示默认图库中的图像。 请让我知道,如果有人知道任何插件,做上述工作。

  • 我使用spring boot并尝试加载图像到我的html页面。 文件的完整路径:file:///d:/dyplom%20project/src/main/resources/static/slove.png当我在浏览器中运行时,所有工作和图像都在上传。 而当我转到localhost-welcomepage时,我有它: 控制台错误: 这与路径错误

  • 如何与ShareActionProvider共享drawable文件夹中的图像?我已经证明了很多事情,但它不起作用。 本例中的uri是什么?Uri=Uri。解析(“android。resource://com.android.example/“R.drawable.photo);不起作用。 非常感谢。