import java.util.ArrayList; import java.util.Collections; import java.util.List; import com.restfb.DefaultLegacyFacebookClient; import com.restfb.Facebook; import com.restfb.LegacyFacebookClient; import com.restfb.Parameter; public class StreamPublishExample { // You need to provide your access token here. // Instructions are available on http://restfb.com. private static final String MY_ACCESS_TOKEN = ""; public static void main(String[] args) { LegacyFacebookClient facebookClient = new DefaultLegacyFacebookClient(MY_ACCESS_TOKEN); ActionLink category = new ActionLink(); category.href = "http://bit.ly/KYbaN"; category.text = "humor"; Properties properties = new Properties(); properties.category = category; properties.ratings = "5 stars"; Medium medium = new Medium(); medium.href = "http://bit.ly/187gO1"; medium.src = "http://bit.ly/GaTlC"; medium.type = "image"; Attachment attachment = new Attachment(); attachment.name = "i'm bursting with joy"; attachment.href = "http://bit.ly/187gO1"; attachment.caption = "{*actor*} rated the lolcat 5 stars"; attachment.description = "a funny looking cat"; attachment.properties = properties; attachment.media = Collections.singletonList(medium); // Send the request to Facebook. // We specify the session key to use to make the call, the fact that we're // expecting a String response, and the attachment (defined above). String postId = facebookClient.execute("stream.publish", String.class, Parameter.with("attachment", attachment)); System.out.println("Post ID is " + postId); } static class ActionLink { @Facebook String text; @Facebook String href; } static class Medium { @Facebook String type; @Facebook String src; @Facebook String href; } static class Properties { @Facebook ActionLink category; @Facebook String ratings; } static class Attachment { @Facebook String name; @Facebook String href; @Facebook String caption; @Facebook String description; @Facebook Properties properties; @Facebook List media; } }