【问题标题】:How to use Facebook Java API to add an attachment to a wall post?如何使用 Facebook Java API 将附件添加到墙帖?
【发布时间】:2011-04-19 17:03:54
【问题描述】:

嘿, 我在使用 stream_publish 方法时遇到了一些麻烦,更确切地说是我想要包含的附件​​。 我正在构建一个桌面应用程序,我希望能够在用户的墙上发布。该帖子将包含一条消息和一张我将从本地硬盘上传的照片。问题是我不知道如何指定附件的源属性。这是一个代码sn-p:

附件附件 = 新附件(); AttachmentMedia media = new AttachmentMediaImage("file:/c:/picture.png", "file:/c:/picture.png"); 附件.addMedia(媒体); facebook.stream_publish("图片", attachment, null, new Long(xxxxxxxL), null);

我根本不知道如何构造 AttachmentMediaImage 对象。我不断收到以下异常:

com.google.code.facebookapi.FacebookException:您的一个或多个图像记录未能包含有效的“href”字段。 在 com.google.code.facebookapi.JsonHelper.parseCallResult(JsonHelper.java:59) 在 com.google.code.facebookapi.ExtensibleClient.extractString(ExtensibleClient.java:2296) 在 com.google.code.facebookapi.ExtensibleClient.stream_publish(ExtensibleClient.java:2150) 在 com.google.code.facebookapi.SpecificReturnTypeAdapter.stream_publish(SpecificReturnTypeAdapter.java:503) 在 MainWindow$1.titleChange(MainWindow.java:64) 在 org.jdesktop.jdic.browser.WebBrowser.dispatchWebBrowserEvent(未知来源) 在 org.jdesktop.jdic.browser.NativeEventThread$2.run(未知来源) 在 java.awt.event.InvocationEvent.dispatch(未知来源) 在 java.awt.EventQueue.dispatchEvent(未知来源) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForFilter(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.run(未知来源)

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: java facebook-java-sdk


    【解决方案1】:

    创建AttachmentMediaImage 时,您需要使用公共网络服务器上图片的 URL - 您无法使用此 API 上传本地图片。

    【讨论】:

    • 正如我在 Graph API 文档中看到的,Facebook Post 对象有一个“来源”属性。要设置此属性,我还必须使用在公共网络服务器上找到的图像的 URL?
    • 是的,这些 API 都是基于 XML-RPC 的,并不是为了向 Facebook 传输大量数据而设计的。为了将图像放到他们的网站上,他们通常只需要您指定一个外部 URL,以便他们的服务器可以将该资产下载到他们的系统中。
    • fbdevwiki.com/wiki/Graph:Photo 上说,如果您想上传图片而不是提供 url,则需要将照片文件附件作为 multipart/form-data 放到 POST 请求中。所以你的意思是,这真的行不通,我仍然需要一个公共网络服务器?还是您只参考了 AttachmentMediaImage 和 stream_publish?
    • 是的,它似乎可以使用您链接到的 Graph API 工作 - 尽管这似乎是一个纯 REST 样式的 API,而 Java API 使用传统的 XML-RPC 方式与他们的通信不支持发送附件的服务器。因此,要使用 Java 中的 Graph API,您可能需要使用诸如 Apache HttpClient 之类的库来自己进行 REST 调用(和文件附件)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2023-03-06
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多