Twilio URL example for sending MMS - twilio

I'm a very new programmer and am messing around with creating URL's to send SMS or MMS messages via Twilio (my application is for home automation where if my camera detects motions, I want to send a still image to an MMS number via a URL).
Can someone post the format for sample URL for an MMS message that I can paste in a browser?
For example, if I have a To parameter of To=+7145551212 and a From parameter of From=+7145551111 and MediaURL=http://test.com/image.jpg, what would the format of the URL need to be?
I have my Account SID and AuthToken as well. Just need an example of what a completed URL would look like so I can work backwards from there.
Thanks!
Paul

If I'm understanding you correctly, I think it would be this :
https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages
And then your parameters need to be in the POST body of the request, like
To=+7145551212&From=+7145551&MediaURL=http://test.com/image.jpg
But Brodan's comment is correct- you can't do this through just pasting a URL into your browser, because it's a POST request. You could use cURL, something like this :
curl --data "To=+7145551212&From=+7145551&MediaURL=http://test.com/image.jpg" https://api.twilio.com/2010-04-01/Accounts/123456/Messages
But your best option would really be to use one of the Twilio helper libraries. Here's a link to their description of the endpoint, they have examples of using those libraries in a variety of languages.
Note : I have never used Twilio myself.

Related

How to pass in a custom parameter to TwiML Bin?

I have some issues trying to pass a custom parameter to TwiML Bin. See attached pictures.
Everything works except the paramter.
Any ideas of what I am doing wrong?
Setup:
Twilio developer evangelist here.
ApplicationSID is from TwiML applications which are containers for a set of URLs and configurations that tell Twilio what to do when one of your Twilio numbers receives a call or SMS message.
If you're using dynamic content from custom HTTP request parameters (ie. name in this case), you should take your TwiML bin's URL and pass it the Name parameter like this in, for example, Python, to generate a call with the custom parameters:
client.calls.create(
url="your-twiml-bin-url?Name=Jeremy",
to="your-phone-number",
from_="your-twilio-phone-number")

Twilio's RAW HTTP POST request for status updates and message responses with all attribute names?

The documentation Twilio has on their website doesn't contain raw POST bodies, and it has conflicting sources on how the attributes are named/which attributes are included in the body.
Field names and their casing don't match:
https://www.twilio.com/docs/api/twiml/sms/twilio_request#request-parameters
https://www.twilio.com/docs/api/rest/message
Should I expect Message Resource type for all of their POST requests to our URLs(Status Updates and Message Responses) ?
Should I expect only the field names advertised on their Twilio's request page?
Do they provide all parameters or any additional parameters in their request not advertised on the documentation(Twilio's request)
I'm assuming they would also provide "MessageStatus" field in their POST requests, but I don't see it on all documentation pages.
The headers in their requests?
Twilio developer evangelist here.
Of the two pieces of documentation you are referring to there, only one is about the request Twilio makes to you when you receive an SMS message. The other is the Messages resource of the REST API.
So, in answer to your questions:
1) The attributes you receive are the ones described in the request documentation. If you want to confirm this, then I recommend setting your webhook URL to a Request Bin which is an easy way to inspect a webhook request like this. Alternatively, if you are using ngrok to test webhooks locally, then check out the ngrok dashboard which also allows you to inspect (and replay) requests.
2) Yes!
3) There are no extra parameters that I know of.
4) MessageStatus is not included. You can look it up using the Messages resource, but in my experience at the point of receiving the webhook the status is "receiving". Once you are done processing the webhook the status changes to "received".
5) The headers are mostly standard. There are extra ones for security, such as the X-Twilio-Signature header. Again, I recommend inspecting a request with Request Bin or ngrok to fully understand the entire request.
Let me know if this helps at all.
Edit
The Content-Type header for POST requests from Twilio is application/x-www-form-urlencoded.
In a message status callback, the parameters are all the usual parameters plus the MessageSid, a MessageStatus, and if relevant an ErrorCode.

How can my slack custom command produce /remind me like links

I am writting a custom slack command that implements a
task manager like interface (I know ... there are many out there :-), mine interfaces with odesk/upwork to outsource my micro-tasks :-) ) .
Anyway, I like a lot how the /remind command included Complete Delete etc links in its output to facilitate subsequent interactions with the user that entered the command and I am trying to figure out how to do the same trick.
What I have thought so far is to include links in my output that are ... GET /slack-link?method=POST&token=xxx&team_id=xx&command=.. ie carry in their query string the complete json payload that slack would have produced from a normal custom command. slack-link acts as a "proxy" whose sole role is to submit a POST back to my normal slack endpoint. I can even reuse the same response_url for these command-links.
I have not tried it but I think these URLs will just open another window so that path wont exactly work...
Has anybody tried something like that before?
As you've learned, those are currently only available to built-in commands. However, as I was curious and wanted to know how those are done, I looked in the API and found out that the URLs are just formatted normally but have a special "protocol":
You asked me to remind you to “test”.
​_<slack-action://BSLACKBOT/reminders/complete/D01234567/1234//0/0/5678|Mark as complete>
or remind me later: <slack-action://BSLACKBOT/reminders/snooze/D01234567/1234//0/0/5678/15|15 mins> [...]
Clicking on such a link results in an API request to method chat.action, with the following parameters:
bot: BSLACKBOT
payload: reminders/complete/D01234567/1234//0/0/5678
token: xoxs-tokenhere-nowayiampostingithere
So it looks like those URLs have three parts:
<slack-action://BSLACKBOT/reminders/complete/[...]|Mark as complete>
slack-action://: the "protocol" like prefix to let Slack know this is a chat action URL.
BSLACKBOT: the bot which (who?) will receive the payload. Can only be a bot user and the ID must start with B, or the API request will fail with invalid_bot.
the rest of the URL: the payload that gets passed to the bot. It doesn't look like this is parsed nor handled specially by Slack.
This is actually not a new feature, since they used to have API URLs back in late 2013 or early 2014 (I don't remember precisely) which they removed for "security reasons".
It could be interesting to see if we can use chat actions with custom bots, and if so, what we could do with it.
I got the answer from Slack support:
In regard to your original question: currently Slack doesn't provide
the ability to embed 'action' links in our custom integrations. Only
built-in features like /remind can utilize these at the moment. For
external services, you'll need to link to a URL that opens in an
external web browser.
We do hope to provide a similar function for custom integrations in
the future, allowing for interactive messages.
Thanks,
Ben

How to integrate BurstSMS API into asp.NET application?

I have situation that if anyone send SMS to my virtual number(CallerID) the BurstSMS API will call my handler which get the response from query string and proceed further.
So, I want to know only that ,how and which things needed to integrate the BurstSMS API in my APS.NET application.
I couldn't find the information from the documentation of API site and as well as not any article on the google.
Thanks in advance.
This is what you need to do.
Log in to your account
Go to Messaging -> Keywords
Click Edit from the Actions column of the campaign you would like to receive responses for
In the form which pops up fill in the "Send Response to URL" field with a URL to a script on your server which can process the responses, e.g. www.clienturl.com/sms.php
Click Save
From then on we will forward all SMSes for that campaign to your script with an HTTP GET request. For example, if you send "Property 25" to your longcode, we will call
www.clienturl.com/sms.php?mobile=61430008230&response=Property+25
From that you can see the parameters we use.
You could also add other parameters your own reference such as the longcode or an internal client id by using a different URL in the "Send Response to URL" field, e.g.
www.clienturl.com/sms.php?longcode=61418499440&client=123
In which case we would send to you
www.clienturl.com/sms.php?longcode=61418499440&client=123&mobile=61430008230&response=Property+25
Source burstsms

Write TwiML instead of code

I am using twilio right now by writing a python script and hosting that with ngrok. When I visit the webpage hosted and view the source, I just see TwiML. Is it possible to just write TwiML w/o code?
Twilio employee here.
Of course you can! If you want to, you can just link the URL to an xml file that you've written and stored on your server - no programmatic generation of the TwiML is required.
One of the simplest ways is to write some plain TwiML on TwiMLbin and just link to the public url for it.
Twilio is just looking for an XML string response to the request it sends - it doesn't care or understand how you generate it.

Resources