jtulach@0: package cz.xelfi.feedbook; jtulach@0: jtulach@1: import com.google.code.facebookapi.FacebookException; jtulach@0: import com.google.code.facebookapi.FacebookJaxbRestClient; jtulach@0: import com.google.code.facebookapi.Permission; jtulach@0: import com.google.code.facebookapi.schema.FriendsGetResponse; jtulach@0: import com.google.code.facebookapi.schema.User; jtulach@0: import com.google.code.facebookapi.schema.UsersGetInfoResponse; jtulach@1: import com.sun.syndication.feed.rss.Channel; jtulach@1: import com.sun.syndication.feed.rss.Item; jtulach@1: import com.sun.syndication.io.WireFeedInput; jtulach@1: import java.io.IOException; jtulach@0: import java.net.URI; jtulach@1: import java.net.URISyntaxException; jtulach@1: import java.net.URL; jtulach@0: import java.util.Collections; jtulach@0: import java.util.List; jtulach@1: import java.util.prefs.Preferences; jtulach@1: import org.xml.sax.InputSource; jtulach@0: jtulach@0: public class Main { jtulach@0: private static final String APP_KEY = "ecdbd5dbacc168f9edfe470ccd7e401b"; jtulach@0: private static final String APP_SEC = "22e3165366e958a6e049e1e0c1d30105"; jtulach@0: jtulach@1: jtulach@1: private static String login() throws IOException, FacebookException, URISyntaxException { jtulach@0: FacebookJaxbRestClient login = new FacebookJaxbRestClient(APP_KEY, APP_SEC); jtulach@0: final String token = login.auth_createToken(); jtulach@0: URI u = new URI("http://www.facebook.com/login.php?api_key=" + APP_KEY + "&auth_token=" + token); jtulach@1: System.out.println("authentication: " + u); jtulach@0: Runtime.getRuntime().exec("xdg-open " + u); jtulach@0: //Desktop.getDesktop().browse(u); jtulach@0: System.out.println("Visit the browser and press enter..."); jtulach@0: System.in.read(); jtulach@0: jtulach@1: return login.auth_getSession(token, true); jtulach@1: } jtulach@1: jtulach@1: public static void main( String[] args) throws Exception { jtulach@1: WireFeedInput rssInput = new WireFeedInput(); jtulach@1: URL rssUrl = new URL("http://blogs.apidesign.org/rss/"); jtulach@1: Channel rss = (Channel)rssInput.build(new InputSource(rssUrl.openStream()));; jtulach@1: System.err.printf("stream from %s\n", rss.getUri()); jtulach@1: for (Object o : rss.getItems()) { jtulach@1: Item item = (Item)o; jtulach@1: jtulach@1: System.err.printf("link: %s date: %s title: %s\n", item.getLink(), item.getPubDate(), item.getTitle()); jtulach@1: } jtulach@0: jtulach@1: Preferences prefs = Preferences.userNodeForPackage(Main.class); jtulach@1: jtulach@1: FacebookJaxbRestClient fb; jtulach@1: for (;;) { jtulach@1: final String stored = prefs.get("session", null); jtulach@1: if (stored != null) { jtulach@1: fb = new FacebookJaxbRestClient(APP_KEY, APP_SEC, stored); jtulach@1: break; jtulach@1: } jtulach@1: final String session = login(); jtulach@1: fb = new FacebookJaxbRestClient(APP_KEY, APP_SEC, session); jtulach@1: prefs.put("session", session); jtulach@1: break; jtulach@1: } jtulach@0: Long user = fb.users_getLoggedInUser(); jtulach@0: final FriendsGetResponse ret = fb.friends_get(user); jtulach@0: final UsersGetInfoResponse info = fb.users_getInfo(ret.getUid(), Collections.singleton("last_name")); jtulach@0: final List arr = info.getUser(); jtulach@0: System.out.println("friends: " + arr.size()); jtulach@0: for (int i = 0; i < arr.size(); i++) { jtulach@0: System.out.println(" " + i + ". = " + arr.get(i).getLastName()); jtulach@0: } jtulach@0: jtulach@0: String url = "http://apidesign.org"; jtulach@0: String cmd = "Testing new application"; jtulach@0: jtulach@0: if (fb.users_hasAppPermission(Permission.SHARE_ITEM)) { jtulach@1: Long ok = 1L; //fb.links_post(user, url, cmd); jtulach@0: System.out.println("posted as " + ok); jtulach@0: } else { jtulach@0: System.out.println("No permission to share links"); jtulach@0: } jtulach@0: } jtulach@0: }