+ user_id = body['user_id'][0]
+
+ # Process "/help me" first. It calls out to have_you_tried rather
+ # than going through our help system.
+ #
+ # Also, it reports in the current channel, (where all other help
+ # output is reported privately to the invoking user).
+ if args == "me":
+ to_try = "In response to <@{}> asking `/help me`:\n\n{}\n".format(
+ user_id, have_you_tried())
+
+ # We'll try first to reply directly to the channel (for the benefit
+ # of anyone else in the same channel that might be stuck too.
+ #
+ # But if this doesn't work, (direct message or private channel),
+ # then we can instead reply with an ephemeral message by using
+ # the response_url.
+ try:
+ turb.slack_client.chat_postMessage(
+ channel=channel_id, text=to_try)
+ except SlackApiError:
+ requests.post(response_url,
+ json = {"text": to_try},
+ headers = {"Content-type": "application/json"})
+ return lambda_ok