loading...

Twilio Hackathon Help Thread

thepracticaldev profile image dev.to staff ・1 min read

The awesome Twilio team will be making themselves available to help people who runs into issues or have questions related to their products as part of the Twilio Community Hackathon.

You are encouraged to comment in this thread for asynchronous assistance. We've also set up a dedicated DEV Connect group channel for more synchronous help. To join the Connect group, just leave a comment in this thread asking to be added.

Twilio will be hosting office hours in Connect during the following times:

  • Mondays: 3-6pm EDT
  • Tuesdays: 3-6pm UTC
  • Wednesdays: 3-6pm AEDT
  • Thursdays: 3-6pm PDT
  • Fridays: 3-6pm EDT

Additionally, Twilio will be hosting a weekly office hours session on https://twitch.tv/twilio, starting on April 2 at 4-6pm PDT.

If you'd like to share more general progress that you're making on your project, you can do so in the community update thread!

Discussion

pic
Editor guide
Collapse
peter profile image
Peter Kim Frank

👋 Can I be added to the help channel onDEV Connect?

(just leaving this comment as an example)

Collapse
michaeltharrington profile image
Michael Tharrington (he/him)

If it's taking a bit for us to add you, please feel free to @mention me and I'll help as quickly as I can!

Collapse
technoplato profile image
Michael Lustig - halfjew22@gmail.com

Request for async assistance:

Can someone help me out here?

I'm using this library to download a video: github.com/fent/node-ytdl-core

I need to save the video to a file in order to make some modifications. I'm having trouble saving the response of the call to download a video without using the piping operator.

I think the read call is returning a byte array, but can't tell from the method signature. Could someone point me in the right direction here?

  const readable = ytdl(shortVideoUrl);

  await new Promise(res => {
    readable.addListener("readable", () => {
      console.log(`index::20: entering`);
      const foo = readable.read();
      if (!foo) {
        console.log(`index::23: no here`);
      }
      console.log("index::21: foo.length:", foo.length);
      const file = fs.createWriteStream("shortvid.flv");
      file.write(foo);
    });
  });

Alternately, if there is a way to get information about the progress of the write when using the pipe operator, that would be great too. Thanks!

Collapse
philnash profile image
Phil Nash

To get info about the progress it looks like you can listen to the progress event on the readable. Something like:

readable.addEventListener('progress', (chunkByteLength, totalBytesDownloaded, totalBytes) => {
  console.log(`Downloaded ${totalBytesDownloaded} out of ${totalBytes}`);
})

I haven't used this library though, so I might be wrong. Hope it helps!

Collapse
technoplato profile image
Michael Lustig - halfjew22@gmail.com

Hey Phil thanks a lot for the reply. That definitely works if I wasn't using the pipe operator, but without doing so, I don't know how to create the file from the array of bytes.

At any rate, I actually switched to Python and it's made my life a little easier.

Thread Thread
philnash profile image
Phil Nash

Ah! Because it's a readable stream it will emit the data event with chunks of the data which you can write into your writable stream. Something like this should work:

const file = fs.createWriteStream("shortvid.flv");
const readable = ytdl(shortVideoUrl);
readable.addEventListener('data', chunk => {
  file.write(chunk);
});
readable.addEventListener('progress', (chunkByteLength, totalBytesDownloaded, totalBytes) => {
  console.log(`Downloaded ${totalBytesDownloaded} out of ${totalBytes}`);
})
readable.addEventListener('end', () => {
  file.end();
});

But, if you've switched to Python and you're happy with that, then that's cool too!

Thread Thread
technoplato profile image
Michael Lustig - halfjew22@gmail.com

If only the Twilio dev evang team could answer all of my Javascript queries 🤣

So just for my learning opportunity here - when you call file.write(chunk), it's appending those bytes to the file, and calling file.end() will close that file write stream and result in the video file automagically?

Side note about python: It's been awesome to stand up my hack. The last step of adding a message queue (which I thought would be the hardest) has been the easiest. Gotta love learning!

Thread Thread
philnash profile image
Phil Nash

Yes, that is the gist of it! Using the data and end events of the readable and calling write and end of the writeable is actually the equivalent of using readable.pipe(writeable). But, the documentation suggests you don't want to mix pipe and event based operations and using the progress event would mess that up.

I'm happy to answer JS questions if I can! I just happened to work with other readables/writeables a couple of weeks ago, so it was sort of fresh.

It's good to hear that the Python version has come on nicely for you. I love hackathons for the learning potential!

Thread Thread
technoplato profile image
Michael Lustig - halfjew22@gmail.com

Brilliant! Well I followed you so be expecting some in the future.

Python for whatever reason (or perhaps the competitive nature of the Hackathon) has me more excited about developing than I’ve been in a while, so thanks for that!

And thanks again for your assistance.

Collapse
alessandrojcm profile image
Alessandro Cuppari

Hi there Twilio team!

The app that I'm building uses Autopilot along with the Whataspp API channel, so I have a couple of questions:

1) Can I have two fields in a collect action question? I.e, the very first question my bot asks is for the user's first name, it goes "Can I have your name" with a yes/no question if the user says yes then it redirects to the actual action which saves the name. But I think this isn't too organic, I would like to narrow those two questions down into one, so the bot asks "Can I have your name?" and then the user could reply "no" or something like "yes I'm name here"; I've seen some examples about custom fields but either they are too old or they do it via the console instead of with the json schema, which is why I want.

2) The API I'm building for the app relies heavily on the UserIdentifier being present (since it's the primary key I'm using to store the users) so, is there I way I can set the UserIdentifier in the Autopilot simulator? Currently, I'm testing with my phone via Whatsapp, but it would be much better to do it in the simulator with the debug view and all the details.

Thanks!

Collapse
alessandrojcm profile image
Alessandro Cuppari

Hey Dominik, I have another question for you 😅

Can the routes taken by the bot to trigger tasks be constrained?

For example, say I have a menu task; which lists all of the bot's functionalities. I want all of those tasks to only be triggered from that menu action, kinda like a finite state machine; where states can only be triggered by another given state. Currently I'm using the listen action with the tasks sub-property; but still, there are actions that trigger when they're not suppose to.

Collapse
dkundel profile image
Dominik Kundel

Hi Alessandro! I reached out to our Autopilot team to get you an answer to those questions. I'll try to get back to you as soon as possible.

Collapse
alessandrojcm profile image
Alessandro Cuppari

Cool Dominik, thanks!

Thread Thread
dkundel profile image
Dominik Kundel

Alright I got some answers for you :)
For your first question, you cannot collect multiple types at the same time but there is a workaround using "prefill"s. You can check them out here: twilio.com/docs/autopilot/actions/.... You could take that to extract the initial values for multiple fields and then it only collects the missing ones.
As for the useridentifier there's unfortunately no way to change it :(

Thread Thread
alessandrojcm profile image
Alessandro Cuppari

Cool, thanks I'll check it out the link. About the UserIdentifier, don't worry I think I can implement some sort of middleware to add that data to the incoming request when debugging.

Collapse
brunooliveira profile image
Bruno Oliveira

Hi :)

A somewhat urgent request:
I bought a phone number from the Netherlands (country where I am) and I can send SMS for Netherlands numbers and Belgian numbers (I have a belgian number).
However, my parents (who are in Portugal) tried to use it with a portuguese number (+351 prefix) and it throws an error telling me the number doesnt have permissions?

TwilioRestException: HTTP 400 error: Unable to create record: Permission to send an SMS has not been enabled for the region indicated by the 'To' number: +351.

Any help will be very appreciated!!

Collapse
philnash profile image
Phil Nash

Hey Bruno,

What you need to do is go to your Twilio console, to the Geographic permissions for SMS section and ensure you have the permission checked for sending to all the countries you want to.

Collapse
brunooliveira profile image
Bruno Oliveira

Hey Phil!
I'd like to let you know that my parents successfully managed to use my web app from Portugal, and got their restaurant info via SMS, flawlessly :D As per your suggestion, just edited the geographic permissions!

Feels great to build my first deployed, location-based web app, all enabled thanks to your API, so, props :D

Thread Thread
philnash profile image
Phil Nash

That's awesome! I love that feeling of a job well done. Don't forget, the API was there, but you had to put everything together. Good luck in the competition!

Collapse
brunooliveira profile image
Bruno Oliveira

Thanks Phil! I'll try to fix it! By any chance did you read my post about my app and is it a valid submission?

Thread Thread
philnash profile image
Phil Nash

It looks like a valid submission to me! As long as it's open source and you followed the other parts of the submission process then you're looking good.

Thread Thread
brunooliveira profile image
Bruno Oliveira

Awesome! Thanks

Collapse
abreezasaleem profile image
Abreeza Saleem

Hi. I'm trying to use the whatsapp api but when I send a (one-way) message, it gives me the following error:

"The 'From' number +1669******* is not a valid phone number, shortcode, or alphanumeric sender ID."

But my number is a valid 10-digit verified number that's working fine for the sms api. Can someone help me out here?

Collapse
philnash profile image
Phil Nash

If you are using the WhatsApp API then you need to send the message from a WhatsApp number. WhatsApp numbers are prefixed with whatsapp: too.

Check out the WhatsApp sandbox in the Twilio console and try again with the WhatsApp sandbox number.

Let me know how you get on.

Collapse
abreezasaleem profile image
Abreeza Saleem

Thank you so much for your reply. I already tried that in my terminal but then I get the error:

Twilio could not find a Channel with the specified From address

I am also providing the authorization token and accountSid.

Thread Thread
philnash profile image
Phil Nash

Have you been through the full WhatsApp sandbox setup?

Thread Thread
abreezasaleem profile image
Thread Thread
philnash profile image
Phil Nash

Can you share the code you're using? My DEV connect chat is open if you want to share that privately or in more real time.

Collapse
gyocran profile image
gyocran

Hello. I'm in need of asynchronous assistance. I just created a Twilio trial account for the hackathon but was greeted with this message when redirected to my dashboard:

"Your account has been suspended due to suspicious activity. Please check your email or submit a ticket with your name, use case, and link to your business and we will review your account."

I am not sure what I did wrong and I need some direction before taking any course of action. Can anyone help? Thanks in advance.

Collapse
philnash profile image
Phil Nash

Oh no! Sorry about that. Our fraud detection does hit the occasional false positive.

If your account has been suspended you will have received an email from our fraud team with more information and a number of questions. The best course of action is to reply to that email and answer the questions. That will give the fraud team more detail and allow them to unlock your account.

Collapse
vanotis720 profile image
Vanotis720

hi Phil! I replied to the email with the answers to all the questions but it's been a few days that my account is still unblocked

Collapse
dev00114 profile image
Dev00114

Hi, Nice to meet you.
I got the same issue.
Please check my image, let me know your answer

Thread Thread
philnash profile image
Phil Nash

Hey, I’m not sure what image you mean here.

If your account has been suspended you will have received an email from the Twilio fraud team with some questions. You should respond to that email and answer the questions, that will help the team unlock your account.

Collapse
gyocran profile image
gyocran

I have submitted a ticket and sent you an email containing my Account SID. Thanks so much for help

Thread Thread
philnash profile image
Phil Nash

I think you're back up and running now. Good luck building your hack!

Thread Thread
gyocran profile image
gyocran

Yes I am Phil! Thanks for your help. I appreciate it.

Collapse
leenliz9 profile image
Leenliz9

hello Phil, I too have been suspended from twillio with the same message of suspicious activity. I have already submitted a ticket to support. I will send you my account SID via email if thats ok?

Collapse
thomasbnt profile image
Thomas Bnt

Hello 👋🏼😊
Can be added to the help channel onDEV Connect?

Collapse
mia01 profile image
Mia

Hi I'm having an issue when I try to apply the hackathon promocode on my twillio trial account. I'm getting the following error "Error Promo code is not available for your account." I've followed the steps shown here: twilio.com/blog/apply-promo-code

Please help!! :)
Also can I get added to the DEV connect channel
Thanks!

Collapse
Sloan, the sloth mascot
Comment deleted
Collapse
shanecurran_35 profile image
Shane Curran

🙌 All of us at evervault are more than happy to help out with any questions you might have or help you might need to get up and running with evervault auth. Just drop us a line 😎

If you're curious to hear more about how we think privacy should be solved then we'd love if you took a look at our Pragmatic Privacy Manifesto, which you can read on our blog (uncaged.blog/manifesto/)

Collapse
shaijut profile image
Shaiju T

Some questions: 😄

  1. What if two people accidentally does the same project who willl win ?

  2. Is demo link mandatory ? Because I need to find a free hosting provider to host .NET app. Other option is that I can run the project locally and record the demo as video and post in YouTube, so twilio team can watch the demo ?

  3. Your project should not have security vulnerabilities or violate security best practices (i.e. hard coded credentials, plain text passwords)
    According to The above statement. it means even we cannot store twilio or other API key in our app ?

  4. I need to convert 300 words to speech. i.e I would send that 300 words to twilio voice api and it should return the speech output in a url so I can play it in a browser. if this is possible, Kindly send me documentation demo for .NET.

Collapse
technoplato profile image
Michael Lustig - halfjew22@gmail.com
  1. Not a judge but I'd imagine they're examining all relevant criteria. You need to make sure to follow all of the instructions and do your best. If one application is the same as another, but the latter has better documentation, architecture, tests, etc, I would image it would win.

  2. Check out Ngrok

  3. I'm interpreting that the same as you are.

  4. I think the spirit of the hackathon is to go out and try and find things yourself, post what you've found and tried, and then if you can't find anything, ask for help. Have you looked anywhere at the Twilio docs?

Collapse
shaijut profile image
Shaiju T

Hi 😄, I have used Ngrok before good idea. Thanks.

Collapse
dkundel profile image
Dominik Kundel

Hi @shaijut

  1. If it is the same idea but different implementations we'll still judge them as normal. If it seems like it is 100% identical we'll have to see if we can determine who built the original one

  2. Demo link is not mandatory as long as the README has clear instructions on how to run the project locally.

  3. You should store your credentials as environment variables for example or whatever is the right solution in your respective programming language. Here's an example how to use secrets in .NET twilio.com/blog/2018/05/user-secre...

  4. The voice API is largely designed for phone calls and not directly for speech to text. We do have speech to text built-in though. There are some examples here: twilio.com/speech-recognition

Collapse
bywaleed profile image
Waleed

👋 Can I be added to the help channel onDEV Connect?

Collapse
petr7555 profile image
Petr Janik

Hi. I use Autopilot. Inside, I have a task with action "redirect", which redirects to my express server. I know I could use Twilio functions, but I also need to access DB. I would like to process the request sent from Twilio in express. But I am unable to extract the data from request. Both req.params and req.query are empty.

EDIT: I changed method on both sides to GET and now it works.

EDIT2: The problem has emerged again. I need to use POST method to be able to access Memory. But params, query and body are all empty.

EDIT3: The solution was to use

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: false
}));
Collapse
dkundel profile image
Dominik Kundel

I'm glad you were able to unblock yourself. Yes you have to use the app.use(bodyParser.urlencoded({ extended: false})) option because Twilio performs HTTP POST requests with the data type of application/x-www-form-urlencoded and Express has removed automatic body parsing from their implementation some time ago.

Collapse
shreyravi profile image
Shrey Ravi

Hey! I had SO much fun working on this, I was just wondering if I followed the correct format to submit my project (post at dev.to/shreyravi/covid-19-sms-upda...) for this type of hackathon. Thanks so much again, this was an AMAZING learning experience!

Collapse
juanirache profile image
Juan Irache

Did you ever get a reply on this?

Collapse
shreyravi profile image
Shrey Ravi

nope, but i assume everything went well :)

Collapse
gameoverwill profile image
Wilfredo Pérez

Hello guys, after I updated my sms-url from twilio-cli I got an error.

a483e79ff8f8:untitled wilfrelo$ twilio phone-numbers:update "+MY-NUMBER" --sms-url="http://localhost:1337/sms"
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: spawn ./ngrok ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn ./ngrok',
  path: './ngrok',
  spawnargs: [ 'start', '--none', '--log=stdout' ]
}

Details here

I´m stuck because I didn´t have luck searching on Google. Please can someone help me?

Collapse
philnash profile image
Phil Nash

Are you able to download, install and run ngrok outside of the Twilio CLI? It looks like that is what is causing trouble here.

Collapse
gameoverwill profile image
Wilfredo Pérez

Hey @phil I noticed during the weekend that my laptop that use in my job has blocked something that don't let me install or use ngrok. I tested my code in another computer and it's working.

Thanks for your help.

Thread Thread
philnash profile image
Phil Nash

That's good news! Glad you found out what happened and could test elsewhere.

Collapse
louy2 profile image
Yufan Lou

👋 Can I be added to the help channel on DEV Connect?

Collapse
juanirache profile image
Juan Irache

Hello,

Is there a way to check if our submission is correct? For example, I did not receive a confirmation email when I joined CodeExchange. Also, should we mark our submission DEV posts as submissions somehow so they get noticed en between the other update posts?

Thank you

Collapse
mars profile image
Mara McCrann

I have a question, but it might seem 'too' easy since I'm still in the process of knowing how an API works. I am planning on creating an app, with C# as a language. I've read tutorials, and I'm kind of confused about how you would let 'other' users use the app? Since there are also 'auth tokens' (that I can't still have a grasp on) as a developer that you use while you create the app. Any help is appreciated. Thank you!

Collapse
philnash profile image
Phil Nash

I would recommend that you have a go with the API and see how far you get. Try going through this tutorial on sending SMS messages with Twilio in C# and see what you think after that? I'll be happy to answer any questions you have.

Collapse
mars profile image
Mara McCrann

Sorry for the very late reply! I have been studying the SMS API, but I do want to know if I could somehow submit a project that isn't 'fully' completed? What I mean is, there will be the implementation of the API, login system... however it won't be something that I would deploy for commercial use. Would it get me the participation badge atleast? Thank you!

Thread Thread
philnash profile image
Phil Nash

In the rules it says:

Submissions must work as described in the repository's README and submission post.

So if your project doesn't have all the features that you wanted it to, but it can still do some things, then you only have to describe the bits that it does. And then it is a valid submission and you would eligible for the participant badge. 🙂

Collapse
savagepixie profile image
SavagePixie

Asking for some async help:

I've been following the tutorial for the WhatsApp API and got my sandbox connected to a phone number and be able to send messages and all that. But it is still unclear to me how I get a dedicated number. Could someone explain it to me or point to the documentation that explains it?

Also, I imagine there is a way to change what a user has to send to join the sandbox and the response message that Twilio sends confirming it?

Collapse
philnash profile image
Phil Nash

Hey @savagepixie , glad to hear the WhatsApp Sandbox is working for you. That's definitely the best place to be for developing an application.

To get a real number on WhatsApp you need to be approved by the WhatsApp team. You can apply through Twilio and the team here will help with that. The best documentation to read on it is here: twilio.com/docs/whatsapp/api#using....

Let me know if that helps or if you have further questions.

Collapse
michaeltharrington profile image
Michael Tharrington (he/him)

Hey hey, good to see a familiar face in this thread! So, it's definitely not a requirement, but just give me a shout if you want to be added to the Twilio Hackathon Connect channel. 😀

Collapse
savagepixie profile image
SavagePixie

Just to make sure I don't start coding for nothing. We don't need to use the libraries provided by Twillio as long as we use their services, right?
So, can we use languages that don't have a library and connect to the API via http requests? In my case I'd like to use Elixir to code my project.

Collapse
philnash profile image
Phil Nash

You don't need to use our libraries, no, just the API. I'd love to see a submission in Elixir!

Collapse
savagepixie profile image
SavagePixie

Awesome, thanks!

Collapse
tomas profile image
Tomás Arias

Hi, please add me to the group on DEV Connect, thanks.

Collapse
gyocran profile image
gyocran

Hi. I need some assistance. I am trying to buy a number on Twilio that I can use from Ghana unfortunately SMS is not supported for Ghanaian numbers. I was thinking I could instead use any other number that supports SMS but I see that all of them can send and receive to domestic numbers only. Is there any workaround in this situation? Thanks in advance

Collapse
philnash profile image
Phil Nash

Hey @gyocran , it's definitely not the case that numbers only support domestic SMS. I would recommend you get a US number, they can send all over the world. Do make sure that you have geographic permissions enabled to send SMS to Ghana though.

Further to that, I just checked on our guidelines for sending SMS messages to Ghana. They suggest that:

Numeric sender ID is not supported to the Airtel and Glo networks in Ghana. Messages submitted with numeric would result in delivery failure. Send only with alphanumeric sender ID to these networks.

So you probably want to try sending SMS messages from an alphanumeric ID instead of a number, or you can use a messaging service with a number and an alphanumeric ID to cover both cases.

Note: when sending messages with an alphanumeric ID users cannot respond as there is no phone number to respond to. If you want to build a two way messaging application you might look into trying the Twilio API for WhatsApp instead.

Let me know how you get on.

Collapse
gyocran profile image
gyocran

Thanks for clarifying my issue with buying a number. Also, thanks for the additional information. I will have to reconsider some aspects of the project after this. I will keep you posted on how things are going. Thanks again.

Collapse
savagepixie profile image
SavagePixie

Question about the submission guidelines.

From the hackathon announcement, it seems that we need to post an issue in Twilio's code exchange and an article in DEV in order to submit our project.

But looking through other people's issues in the code exchange, Twilio's reply seems to be that they are not a valid submission for the hackathon and that, to submit their project, they need to post an article here. The way they say it, it seems to be that the article in DEV is the only part of the submission process.

So this is my question: Do I need to do both open an issue in the code exchange and publish an article in DEV or do I only need to publish an article on DEV?

(Note: I don't mind opening an issue in the code exchange. In fact, I've already got it written. But I don't want to clutter the repo's issues if that's not part of the submission process)

Collapse
hangouh profile image
Hugo Hernández Valdez

Hi!, 👋 Can I be added to the help channel onDEV Connect?

Collapse
yanikpei profile image
Yanik Peiffer

👋 Can I be added to the help channel onDEV Connect?

Collapse
_bigblind profile image
Frederik 👨‍💻➡️🌐 Creemers

Hi, please add me to the Twillio DEV connect group.

Collapse
ravgeetdhillon profile image
Ravgeet Dhillon

Hello everyone. I am participating in Twilio Hackathon. I have made an interesting app that needs to self-hosted on your server. Now how do I provide a demo link for it as mentioned in the submission template?

Collapse
jasmin profile image
Jasmin Virdi

👋 Can I be added to the help channel on DEV Connect?

Collapse
gyocran profile image
gyocran

Hi. Can I please be added to the help channel onDEV connect?

Collapse
suraj_pillai profile image
Suraj Pillai

Can I be added to the help channel onDEV Connect?

Collapse
mrnaif2018 profile image
MrNaif2018

Hi! Can I be added to the help channel onDEV Connect?