I have integrated twilio otp api and it suddenly stop working - twilio

I have integrated twilio and it was working fine but suddenly
end users stop receiving top message at their mobile. Is there any capacity problem if yes then how to fix this

Without providing the code, I can give the following suggestions to check upon.
1. Check if the Twilio Account has enough balance to send messages
you can check this in the dashboard.
2. Check if the Message template used is verified or not.
If the template is rejected for some reason, you won't be able to use it.
3. Use the API Gateway Dashboard to determine the cause for no sending messages.
If you can see the messaged being in outbounds mode, but not being sent, you can check the reason for it.
4. Check if the Twilio API library used has changed the API structure
Refer to Twilio Docs and confirm if the APIs have received some changes in them, deprecating any changes. (This is very rare, as most API Providers keep the Legacy API code format active for some time for users to migrate from it.)
5. Confirm If any New Government Rules are changed.
Ex. In India, there are some new laws put up for sending SMSes to users. You would need to follow the rules to register the template again to a Mobile Carrier's site, and then use it. These details will be provided on Twilio Dashboard.

Related

Twilio Programmable Chat - Access denied (code: 54007) for old chats

We are using Twilio Programmable Chat on our project for 1 year. On the mobile side we use twilio-chat v.6.0.0 SDK. On the backend side we use java library - com.twilio.sdk:twilio:7.51.0
Problem
But a couple of days ago we started experiencing problems with authorization on the mobile side. Everything is ok when we create new chats and work with them.
But when we try to fetch messages for the old chats (created before that problems), we receive the following error access forbidden for identity (status: 403, code: 54007)
What we tried
We tried to upgrade/downgrade both mobile SDK and backend libraries.
I've read the code: 54007 documentation. We have never configured any Sync services, possible they were introduced and not properly configured for the old chats?
We have only one Sync service that was created (automatically) recently and ACL enabled flag is set to false.
Here is the structure of our access token:
My guess is that something has recently been changed with the permissions in the Chat API and the default config is not working for us.
I don't know exactly what it could be. Please, help.
In our case we got the same error when trying to fetch messages for a channel where the user is not a member of Error: Access forbidden for identity (status: 403, code: 54007). This happened with Twilio SDK twilio-chat 6.0.0 and 4.1.0.
After we reviewed the "Roles and Permissions" section in the Twilio Console we noticed that the "service user" (which is the default user role for the chat user) did not have the permission "editChannelAttributes" activated, as compared to another sub account where fetching messages for unjoined channels was still possible.
Activating the permission "editChannelAttributes" for the service user and fetching messages seems to work again.
I'm not sure what the connection between this permission and fetching messages could be, but maybe this information is still helpful.
This is the official answer from Twillio Support that helped us:
Recently the engineering team has effectively deployed some modifications over Programmable Chat; before this change, users would be able to see channel messages that they were not part of. With this update, users will receive error code 54007 for Chat if they try to read any channel that they are not a member of.

Find source of Google My Business API request

We are setting up Google My Business using the following oauth instructions.
https://developers.google.com/my-business/content/notification-setup
However, there seems to be a process somewhere that keeps changing the settings and sending the notifications to a different pub/sub topic. So basically it appears to be making a PUT request to :
https://mybusiness.googleapis.com/v4/accounts/{accountId}/notifications
Is there a way to determine the source of the request ? There does not seem to be any instructions on how to access Google My Business API audit logs.
You should check who else has access to that location group, ideally through the GMB UI as that can give you an e-mail address hint:

Multiple Ways Verifying Phone with Twilio's Authy

I'm confused on how exactly to verify a phone with Authy.
I have a C#/MVC view that accepts a country code and phone number and I call AuthyClient.RegisterUser and that works fine. I store the AuthyId that comes back.
I then call AuthyClient.SendSms with force=true. <--- does this send them a verification code?
My test user didn't even enter a code on my site and in Twilio, he's showing as verified. Is that because he opened up the Authy app after getting registered?
Are there multiple ways to verify a phone then?
Twilio developer evangelist here.
The API requests you are making here, starting with the call to AuthyClient.RegisterUser is actually the way that you perform two factor authentication with the Authy APIs.
To verify a phone with Authy you only need to make two API calls. The first sends a verification code and the second requires the user to input the code they received and then verifies it.
I can see you're using the authy.net library, which is sadly archived on GitHub now because it wasn't kept up to date. I'm not a .NET developer, but from what I can see in the codebase it didn't support the Verify endpoints. For this reason, I'd recommend you construct the HTTP requests yourself.
Take a read through the Verify documentation, it has all the URLs you need to make requests to including the required parameters. Let me know how you get on with that.

How to process Stripe payment authentication in iOS (Swift)?

I don't know if there's a lot of people people in here who are familiar with Stripe, but I hope someone can help me out. I'm setting up iDEAL payment in my app using Sources, and I'm using the guide on the Stripe website to help me out. Everything was explained very clear about how to set up the source, but the problem I'm running into is that the guide is very unclear about how I should continue after the source has been created and the user has authenticated the payment. It only describes how to continue when you're a web developer, but it's very unclear how to continue when you're an iOS developer. Basically what I want to do, is to get notified on whether the source object became chargeable (successful authentication) or failed. It only says you can get notified about the authentication status through client-side polling, but it's poorly described how to set up client-side polling in iOS. Can someone give me some directions on how I should continue after the authentication has been completed and the user returns back to the app? How can I get access to the new status of the source object after I return to the app?
It's not possible to charge a given source or create a customer in your iOS application as those calls require your Secret API key. You should never have the Secret API key in your iOS application otherwise an attacker could get his hands on it and then create charges, refunds or transfers on your behalf.
Once the source is created client-side, you need to send its id src_XXXX to your server. There, you will be able to call the Create Charge API to charge your source with your Secret API key.
Since you plan to use iDeal, the source is not chargeable immediately. Instead, you need to either poll the source client-side until it's ready to be charged or you need to listen for the source.chargeable webhook event indicating that the source is ready to be charged.
Once it is ready, you will be able to charge the source on your server.

Twilio controlling video room access

jut for a background, I'm building a poc of twilio based video chat contact center and I've came upon one issue. Most of the people using the service will be anonymous customers, no logging / authentication here. Looking at the twilio api, once I produce a Token with VideoGrant I loose all control of what the javascript client does with it, for example, someone can modify my JS client to create their own room, instead of joining the one assigned by my app.
Is there any way to create VideoGrant which would allow only joining a room, preferably a single, selected room?
There is a mention of Room Events in the console, but I didn't see any docs on it, maybe it would allow to catch rooms creation and kill the unknown ones, btw is there a REST api for rooms? nothing on official REST api docs again.
Sorry if the questions are a bit vauge, I'm aware that they might not meet SO standards, but I know that few Twilio developer evangelists are active so maybe you guys can propose some best practices here or just point out to the right docs if I am dumb enough to have missed them.
Lukasz,
Rob Brazier here, PM for Video. In the next few weeks we'll be adding a new grant to the Video section of our Access Tokens that allow you to lock down access only to a specific Room.
The basic flow will be:
User visits your site.
Your app server decides what Room they should connect to.
Your app server creates a Room using whatever identifier you like as the name (using the upcoming Video REST API).
Your app server generates an Access Token with a grant for the specific Room created in #3.
Your app server returns that Access Token to the client.
Client connects using the provided token and is joined to the specified Room.
Let me know if this is clear. Thanks,

Resources