From be2f8daeffe97ee66d19c7574989eb00e64a12e8 Mon Sep 17 00:00:00 2001 From: Scott Murphy Date: Fri, 19 Jul 2013 21:07:42 -0700 Subject: [PATCH] Allow passing of additional parameters to OpenGraphOperations publishAction --- .../social/facebook/api/OpenGraphOperations.java | 12 ++++++++++++ .../social/facebook/api/impl/OpenGraphTemplate.java | 7 +++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/OpenGraphOperations.java b/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/OpenGraphOperations.java index 12b6b336e..a231bdd15 100644 --- a/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/OpenGraphOperations.java +++ b/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/OpenGraphOperations.java @@ -15,6 +15,8 @@ */ package org.springframework.social.facebook.api; +import org.springframework.util.MultiValueMap; + /** * Defines operations for working with Facebook OpenGraph actions. * @author habuma @@ -29,5 +31,15 @@ public interface OpenGraphOperations { * @return the ID of the posted action. */ String publishAction(String action, String objectType, String objectUrl); + + /** + * Posts an action for an object specified by the given object URL. + * @param action The application specific action to post, without the application's namespace. (eg, "drink") + * @param objectType The application specific object type, without the application's namespace. (eg, "beverage") + * @param objectUrl The URL of the object that is the target of the action. + * @param parameters Optional parameters - see https://developers.facebook.com/docs/opengraph/using-actions/#publish + * @return the ID of the posted action. + */ + String publishAction(String action, String objectType, String objectUrl, MultiValueMap parameters); } diff --git a/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/impl/OpenGraphTemplate.java b/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/impl/OpenGraphTemplate.java index e634f28e3..8d045ce96 100644 --- a/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/impl/OpenGraphTemplate.java +++ b/spring-social-facebook/src/main/java/org/springframework/social/facebook/api/impl/OpenGraphTemplate.java @@ -31,12 +31,15 @@ public OpenGraphTemplate(GraphApi graphApi, boolean isAuthorizedForUser) { } public String publishAction(String action, String objectType, String objectUrl) { + return publishAction(action, objectType, objectUrl, new LinkedMultiValueMap()); + } + + public String publishAction(String action, String objectType, String objectUrl, MultiValueMap parameters) { requireAuthorization(); requireApplicationNamespace(); - MultiValueMap parameters = new LinkedMultiValueMap(); parameters.set(objectType, objectUrl); return graphApi.publish("me", graphApi.getApplicationNamespace() + ":" + action, parameters); - } + } private void requireApplicationNamespace() { String applicationNamespace = graphApi.getApplicationNamespace();