'Build a url that, when requested by the client, will cause a callback to be triggered
Arguments:
callback: The function to be called. It should take 1 argument(the
data or None on
timeout) and returns if the callback shoudl remain mapped.
base_url: The base url to use to build the detection URL on top of.
data: The data to include to the callback. if empty the data can be
appended to the
returned url at a latter time
timeout: How long the callback should remain live for.
Returns the url to trigger detection. If data is empty it is safe to
append the data
to the url directly.'

@staticmethod
def add_callback_url(callback, base_url, data='', timeout=2):

    id = callbacks.add(callback, timeout=timeout)
    id = base64.standard_b64encode(str(id))
    url = (base_url + ('?%s:%s,%s' % (ClientReportDetection.token, id, data)))
    return url
