从API检查Twilio余额

时间:2015-04-09 11:27:18

标签: api twilio

有谁知道如何以编程方式检查Twilio中的帐户余额(通过API)?它没有实施吗?

7 个答案:

答案 0 :(得分:7)

无法通过Twilio API检查帐户余额。

请参阅REST API文档,了解可能的内容:https://www.twilio.com/docs/api/rest

答案 1 :(得分:4)

您可以获取Twilio Account details,然后使用帐户响应中的 subresource_uris.balance 要求获得余额

{
  "status": "active",
  "subresource_uris": {
     ...
     "balance": "/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Balance.json"
  },
  "type": "Full",
  ...
}

这是一个摘要-https://gist.github.com/andriichuk/d1c81e58398b19979a3ddbe8a64b316b

答案 2 :(得分:1)

我确认没有API调用来获取您帐户的余额。甚至在问到这个问题后的2年。我已经提交了一张要求进行基本操作的机票,并被告知{#1}}列表中的#34;"但他们并不太有说服力。无论出于何种原因,按照设计,您无法获得平衡。很遗憾,因为它们具有如此强大的API和功能集。

答案 3 :(得分:1)

更新06/27/2020- Twilio的网站现在包括一个示例cURL脚本,该脚本可以包装在HTML GET请求中: https://support.twilio.com/hc/en-us/articles/360025294494-Check-Your-Twilio-Project-Balance

这是我用来获取值的C#代码:

using System.Net;
using Newtonsoft.Json;

string url = "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/Balance.json";
var client = new WebClient();
client.Credentials = new NetworkCredential(accountSid, authToken);
string responseString = client.DownloadString(url);

dynamic responseObject = JsonConvert.DeserializeObject<object>(responseString);
double accountBalance = Double.Parse(responseObject["balance"].Value);
accountBalance = Math.Round((double)accountBalance,2);

答案 4 :(得分:0)

我抓取所有记录并在python中使用它(用于记录中的循环):

Balance = 1024 - round_decimal(r.price)

1024是我支付的金额(需要在适用时更新),价格是我从API中花费的。这是我提出的最好的,将您所知道的内容与API提供的有限信息相结合。

答案 5 :(得分:0)

这可能是通过使用HttpClient引起的。 这是一个C#示例:

public static string GetTwilioBalance(string accountSid, string authToken)
   {
       // declare variable to assign later on
       dynamic balance = null;

       // check required parameters value
       if (!string.IsNullOrEmpty(accountSid) && !string.IsNullOrEmpty(authToken))
       {
           // initialize the TwilioClient using credentials passed as parameters
           TwilioClient.Init(accountSid, authToken);

           // declare instance of HttpClient
           using (var httpClient = new HttpClient())
           {
               // declaring and assigning the authorization value to pass as a parameter in the request to the API
               string base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes(accountSid + ":" + authToken));

               // adding it and using Basic authentication
               httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", base64authorization);

               // receiving the raws response (got url from reading docs and other posts from other languages)
               HttpResponseMessage response = httpClient.GetAsync("https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/Balance.json").Result;

               // assigning the content to a variable 
               HttpContent content = response.Content;

               // reading the string
               string result = content.ReadAsStringAsync().Result;

               // multiple ways of reading Json (which we will receive as result, here are 2

               //dynamic value = JObject.Parse(result);
               //string result1 = value.balance;
               //string result2 = value["balance"];

               // I prefer this one but this is a preference :)
               balance = JObject.Parse(result)["balance"].ToString();                                            
           }
       }

       // you can handle this as you like
       // for example purposes I am returning either the value of the Balance or a string value to flag/check afterwards if not succesful
       return (balance != null) ? balance : "BalanceNotRetrieved";
   }

您可以这样使用它:

string twilioBalance = GetTwilioBalance(accountSid, authToken);

希望它对某人有帮助!

答案 6 :(得分:0)

对于那些使用 node.js (javascript) 的人来说,最好的方法是:

       require('dotenv').config();
    const client = require('twilio')(process.env.ACCOUNT_SID, process.env.AUTH_TOKEN)
    
    client.balance.fetch()
      .then((data) => {
        const balance = Math.round(data.balance * 100) / 100;
        const currency = data.currency;
        console.log(`Your account balance is ${balance} ${currency}.`)
      });

更多信息 => https://www.twilio.com/blog/check-twilio-account-balance-javascript

完美运行!