diff --git a/pom.xml b/pom.xml
index fe98526..6abc83d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,4 +65,11 @@
default
+
+
+ org.jenkins-ci.plugins
+ token-macro
+ 1.12.1
+
+
diff --git a/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java b/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java
index 937cb1a..a69a816 100644
--- a/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java
+++ b/src/main/java/com/flowdock/jenkins/FlowdockNotifier.java
@@ -17,6 +17,8 @@
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.StaplerRequest;
+import org.jenkinsci.plugins.tokenmacro.MacroEvaluationException;
+import org.jenkinsci.plugins.tokenmacro.TokenMacro;
import java.io.IOException;
import java.io.PrintStream;
@@ -122,7 +124,8 @@ public boolean shouldNotify(BuildResult buildResult) {
protected void notifyFlowdock(AbstractBuild build, BuildResult buildResult, BuildListener listener) {
PrintStream logger = listener.getLogger();
try {
- FlowdockAPI api = new FlowdockAPI(getDescriptor().apiUrl(), flowToken);
+ String parsedFlowToken = TokenMacro.expandAll(build, listener, flowToken);
+ FlowdockAPI api = new FlowdockAPI(getDescriptor().apiUrl(), parsedFlowToken);
TeamInboxMessage msg = TeamInboxMessage.fromBuild(build, buildResult, listener);
EnvVars vars = build.getEnvironment(listener);
msg.setTags(vars.expand(notificationTags));
@@ -152,6 +155,10 @@ protected void notifyFlowdock(AbstractBuild build, BuildResult buildResult, Buil
logger.println("Flowdock: " + ex.getMessage());
}
+ catch(MacroEvaluationException ex) {
+ logger.println("Error evaluating token: " + ex.getMessage());
+ }
+
}