我该如何使用Java编写Facebook应用程序?

7

我一直在寻找一个好的例子或起点来编写基于Java的Facebook应用程序,但一直没有找到...希望这里有人知道。此外,我听说Facebook将不再支持他们的Java API,这是真的吗?如果是,那么我们是否应该停止使用Java来编写Facebook应用程序?


我甚至不打算学习Java API来开发FB。我猜想可能没有太多的教程和书籍可以帮助我进行Java开发。相反,我会学习最流行和最受支持的语言来编写FB应用程序。是JavaScript吗? - FirstName LastName
6个回答

6
根据 Facebook 的开发者维基,自2008年5月5日起,Facebook停止支持官方的Java API。
这并不意味着您不能再使用Java编写FB应用程序。维基上列出了几种替代的Java方法。
您可能还想检查此项目,但是它只是在几天前发布,所以效果因人而异。

6

有一个社区项目,旨在使用旧的官方Facebook代码为起点,使Facebook Java API保持最新状态。

您可以在这里找到它,还附有入门指南和一些示例代码。


2

1
BatchFB 提供了一个现代化的 Java API,使您可以轻松地将 Facebook 调用优化到最小集合:

http://code.google.com/p/batchfb/

这是从主页面获取的一个示例,展示了您可以在单个FB请求中有效执行的操作:
/** You write your own Jackson user mapping for the pieces you care about */
public class User {
    long uid;
    @JsonProperty("first_name") String firstName;
    String pic_square;
    String timezone;
}

Batcher batcher = new FacebookBatcher(accessToken);

Later<User> me = batcher.graph("me", User.class);
Later<User> mark = batcher.graph("markzuckerberg", User.class);
Later<List<User>> myFriends = batcher.query(
    "SELECT uid, first_name, pic_square FROM user WHERE uid IN" +
    "(SELECT uid2 FROM friend WHERE uid1 = " + myId + ")", User.class);
Later<User> bob = batcher.queryFirst("SELECT timezone FROM user WHERE uid = " + bobsId, User.class);
PagedLater<Post> feed = batcher.paged("me/feed", Post.class);

// No calls to Facebook have been made yet.  The following get() will execute the
// whole batch as a single Facebook call.
String timezone = bob.get().timezone;

// You can just get simple values forcing immediate execution of the batch at any time.
User ivan = batcher.graph("ivan", User.class).get();

0
你可能想尝试一下Spring Social。它在Facebook功能方面可能有一些限制,但是可以让你连接到Twitter、LinkedIn、TripIt、GitHub和Gowalla。
另一方面,随着Facebook添加功能,一些旧的API可能会失效,所以使用一个更简单纯粹的FB API(当出现问题时可以进行更新)可能是个好主意。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接