Skip to content

I'm using UnityWebRequest with C# to send messages through twilio, but keep getting the error "A 'to' phone number is required." #682

Closed
@jwesierski

Description

@jwesierski

Issue Summary

I'm using UnityWebRequest with C# to send messages through Twilio, but keep getting the error "A 'to' phone number is required." I've tested my Twilio number and personal number using Twilios website API so I know the problem isn't with either of them. I assume I should be able to use any phone number, but to be safe I even verified my number as a 'Caller ID' within Twilio. I've encountered errors related to my account SID and Auth, and resolved them so I know they aren't the problem. I recently created my Twilio account and don't have strong experience with it so let me know if I need to make some configurations in the console or if something in my code is causing the recipient phone number to be misread or not sent correctly.

Code Snippet

I call the method in my scene controller file with

StartCoroutine(twilioSMS.SendMessage("+1xxxxxxxxxx", "This is a test message"));

Then in my Twilio file, which I've attached to the scene in Unity:

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
using Newtonsoft.Json;

public IEnumerator SendMessage(string recipientPhoneNumber, string message)
{
    // Create the JSON payload for the request
    Debug.Log("The recipient phone number is: " + recipientPhoneNumber);
    string jsonPayload = JsonConvert.SerializeObject(new
    {
        from = twilioPhoneNumber, 
        to = recipientPhoneNumber, 
        body = message
    });

    // Create the UnityWebRequest object
    UnityWebRequest request = UnityWebRequest.Post(twilioMessagesApiUrlFormatted, 
    jsonPayload);

    // Set the authorization header with your Account SID and Auth Token
    string auth = accountSid + ":" + authToken;
    string base64Auth = 
    System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(auth));
    string authorizationHeader = "Basic " + base64Auth;
    request.SetRequestHeader("Authorization", authorizationHeader);
    request.SetRequestHeader("Content-Type", "application/json");

    // Send the HTTP request
    request.uploadHandler = new 
    UploadHandlerRaw(System.Text.Encoding.UTF8.GetBytes(jsonPayload));
    request.downloadHandler = new DownloadHandlerBuffer();
    yield return request.SendWebRequest();
   
    
}

Using the above method and any phone number I try as recipientPhoneNumber in the '+1xxxxxxxxxx' format returns the error:

Exception/Log

Twilio API Request Payload: {"from":"+1xxxxxxxxxx","to":"+1xxxxxxxxxx","body":"This is a test message"}
Twilio API Response Text: {"code": 21604, "message": "A 'To' phone number is required.", "more_info": "https://www.twilio.com/docs/errors/21604", "status": 400}
Twilio API request error: HTTP/1.1 400 Bad Request
Twilio API Request Method: POST

Technical details:

  • twilio-csharp version: Latest - not using a package
  • csharp version: - latest - using through Unity & VSCode which is also the most recent version

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions