将图片发布到脸书页面

2022-09-04 23:26:33

我想将我的图片发布到我的Facebook页面。以下是我尝试的代码,该代码来自RestFB手册页。但它显示了某种不被理解的错误。同样在发布(“我/照片”)中,我应该传递我的用户名而不是写信给我吗?此外,图像鸟.jpg也存在于我的项目文件夹中。任何人都可以帮我吗?任何类型的帮助将不胜感激

FacebookClient facebookClient = null;
FacebookType publishPhotoResponse = facebookClient.publish("me/photos",  FacebookType.class,
BinaryAttachment.with("bird.jpg",  FaceBookUpload.class.getResourceAsStream("/bird.jpg")),
              Parameter.with("message", "Test cat"));

System.out.println("Published photo ID: " +  publishPhotoResponse.getId());

这是我遇到的错误

Exception in thread "main" java.lang.IllegalArgumentException: Binary attachment data cannot be null.
at com.restfb.BinaryAttachment.<init>(BinaryAttachment.java:68)
at com.restfb.BinaryAttachment.with(BinaryAttachment.java:113)
at pkg.am.ncrb.shot.FaceBookUpload.main(FaceBookUpload.java:31)

我也尝试了下面的代码

但一切都不起作用

InputStream is = new FileInputStream(new File("bird.jpg"));
    FacebookType publishVideoResponse =facebookClient.publish("me/photos",FacebookType.class,
            BinaryAttachment.with("bird.jpg", is),
            Parameter.with("message", "MY PHOTO POST"));    

它正在得到例外

Exception in thread "main" java.lang.NullPointerException
at pkg.am.ncrb.shot.FaceBookUpload.main(FaceBookUpload.java:35)

我只需要一个示例代码片段,将我的图像推送到Facebook中。我不知道出了什么问题。


答案 1
  1. 在 Java 中,不能使用设置为 的对象。您将获得一个 .nullNullPointerException

    的对象是 。您应该初始化它:nullFacebookClient

    FacebookClient facebookClient = new DefaultFacebookClient();
    
  2. 你把照片放在哪里?如果它嵌入在 jar 文件中,请使用 。如果它位于当前目录中(可能),请使用 。FaceBookUpload.class.getResourceAsStream("/bird.jpg")new FileInputStream(new File("bird.jpg"))


答案 2

从脸书页面:

REST API

之前已弃用的 REST API 已在 v2.1 中完全删除,所有仍在使用它的应用都必须迁移到使用图形 API。

如果您的移动应用正在使用未记录的身份验证。ExtendSSOAccessToken 端点从 REST API 扩展长期访问令牌,您需要升级您的应用以使用完整的 iOS 或 Android SDK。SDK 将自动处理扩展访问令牌。

来源 Facebook 开发者文档