将图像发布到Facebook页面

时间:2015-04-29 05:15:44

标签: java facebook facebook-graph-api restfb

我想将我的图片发布到我的脸书页面。下面是我试过的代码,来自RestFB手册页。但它显示出一些未被理解的错误。另外在发布(“我/照片”)中,我应该通过用户名而不是写?图像 bird.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)

我只需要一段代码,将我的图片推送到脸谱版。我不知道出了什么问题。

2 个答案:

答案 0 :(得分:2)

  1. 在Java中,您无法使用设置为wget "https://docs.google.com/spreadsheets/export?format=tsv&id=1sSi9f6m-zKteoXA4r4Yq-zfdmL4rjlZRt38mejpdhC23" -O sheet.tsv 的对象。您将获得null

    NullPointerException的对象是null。你应该初始化它:

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

答案 1 :(得分:0)

从Facebook页面:

  

REST API

以前弃用的REST API已在v2.1中完全删除,所有仍在使用它的应用程序必须迁移到使用Graph API。

如果您的移动应用使用REST API中未记录的auth.ExtendSSOAccessToken端点来扩展长期访问令牌,则需要升级您的应用以使用完整的iOS或Android SDK。 SDK将自动处理扩展访问令牌。

来源Facebook Developers Docs