Twilio - 绕过 php 中的“.json 未找到”
Twilio - Bypass ".json not found" in php
我正在尝试检查免费电话号码,它按预期工作。但是,我的问题是有些国家/地区没有免费电话号码。
在这些国家/地区使用相同的代码会引发 404 错误并在那里停止代码。
我能想到的唯一方法是制作大量 if 语句并手动添加提供免费选项的每个国家/地区,但我根本不喜欢这种解决方案,因为它将被硬编码。有没有办法解决这个问题,使其适用于拥有 .json
的国家并忽略那些没有(而不是崩溃代码)的国家?
$twilio = new Client(env('TWILIO_ID'), env('TWILIO_TOKEN'));
$iso = 'CY';
$params = ["excludeLocalAddressRequired" => "true"];
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
这是回复:
"[HTTP 404] Unable to fetch page: The requested resource /2010-04-01/Accounts/ACxxxxx/AvailablePhoneNumbers/CY/TollFree.json was not found"
使用此代码会导致 CY 崩溃,但适用于英国、美国、加拿大等国家。我应该添加带有硬编码国家/地区的 if 语句吗? (我真的不喜欢这个解决方案,但这是我能想到的)。我的意思是:
if ($iso == 'GB' || $iso == 'US' || $iso == 'CA') { // and many more
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
}
为什么不把它包裹在 try catch
中?
try {
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
} catch(\Exception $e) {
$tollFreeNumbers = [];
}
这里是 Twilio 开发人员布道者。
而不是预先用条件来保护(当我们将来在其他国家/地区添加免费电话号码时它可能会过时),为什么不捕获错误并 return 向用户发送消息说免费电话号码在他们正在搜索的国家/地区不可用。
类似于:
try {
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
} catch (Exception $e) {
$tollFreeNumbers = [];
$message = "Toll free numbers are not available in this country.";
}
如果有帮助请告诉我。
我正在尝试检查免费电话号码,它按预期工作。但是,我的问题是有些国家/地区没有免费电话号码。
在这些国家/地区使用相同的代码会引发 404 错误并在那里停止代码。
我能想到的唯一方法是制作大量 if 语句并手动添加提供免费选项的每个国家/地区,但我根本不喜欢这种解决方案,因为它将被硬编码。有没有办法解决这个问题,使其适用于拥有 .json
的国家并忽略那些没有(而不是崩溃代码)的国家?
$twilio = new Client(env('TWILIO_ID'), env('TWILIO_TOKEN'));
$iso = 'CY';
$params = ["excludeLocalAddressRequired" => "true"];
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
这是回复:
"[HTTP 404] Unable to fetch page: The requested resource /2010-04-01/Accounts/ACxxxxx/AvailablePhoneNumbers/CY/TollFree.json was not found"
使用此代码会导致 CY 崩溃,但适用于英国、美国、加拿大等国家。我应该添加带有硬编码国家/地区的 if 语句吗? (我真的不喜欢这个解决方案,但这是我能想到的)。我的意思是:
if ($iso == 'GB' || $iso == 'US' || $iso == 'CA') { // and many more
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
}
为什么不把它包裹在 try catch
中?
try {
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
} catch(\Exception $e) {
$tollFreeNumbers = [];
}
这里是 Twilio 开发人员布道者。
而不是预先用条件来保护(当我们将来在其他国家/地区添加免费电话号码时它可能会过时),为什么不捕获错误并 return 向用户发送消息说免费电话号码在他们正在搜索的国家/地区不可用。
类似于:
try {
$tollFreeNumbers = $twilio->availablePhoneNumbers($iso)->tollFree->read($params);
} catch (Exception $e) {
$tollFreeNumbers = [];
$message = "Toll free numbers are not available in this country.";
}
如果有帮助请告诉我。