我正在尝试在Yii上配置Twilio以发送短信但无法配置它。不幸的是,Twilio也无法提供太多帮助。以下是我到目前为止所做的事情:
我甚至尝试添加以下内容的明确引用,但这甚至不起作用:
以下是我的开发环境:
以下是我的代码:
public function SendSMS(){
Yii::import('application.vendors.twilio-php.Services.Twilio.Resource.php');
Yii::import('application.vendors.twilio-php.Services.Twilio.Rest.Accounts.php');
Yii::import('application.vendors.twilio-php.Services.Twilio.ListResource.php');
Yii::import('application.vendors.twilio-php.Services.Twilio.HttpStream.php');
include 'C:\Projects\EMR\webapp\protected\vendors\twilio-php\Services\Twilio.php';
$AccountSid = "SID";
$AuthToken = "Token";
$client = new Services_Twilio($AccountSid, $AuthToken);
$sms = $client->account->sms_messages->create(
"111-222-3333", // From this number
"9999999999", // To this number
"First PHP Test message!"
);
// Display a confirmation message on the screen
echo "Sent message {$sms->sid}";
}
以下是我得到的错误的屏幕截图
非常感谢任何帮助!!!
答案 0 :(得分:4)
由于Yii有自动加载器和Twilio库一样,你在加载Twilio时需要卸载Yii。这是你如何做到的。
spl_autoload_unregister(array('YiiBase','autoload'));
require Yii::app()->params['TwillioIncludePath'];
spl_autoload_register(array('YiiBase','autoload'));
答案 1 :(得分:3)
我得到了它的工作。
问题是我卸载Yii的方式。最初,我正在卸载Yii自动装载机,但方式略有不正确。我最初的方法是卸载Yii然后执行所有Twilio任务然后加载它。这是不正确的。正确的方法是卸载Yii,加载twilio文件并在加载twilio后立即加载Yii,然后执行其他任务。以下是我的代码:
Yii::import('application.vendor.twilio-php.*');
spl_autoload_unregister(array('YiiBase','autoload'));
require 'C:\Projects\EMR\webapp\protected\vendors\twilio-php\Services\Twilio.php';
spl_autoload_register(array('YiiBase', 'autoload'));
$AccountSid = "AcoiuntSid";
$AuthToken = "Token";
$client = new Services_Twilio($AccountSid, $AuthToken);
$sms = $client->account->sms_messages->create(
"00000000", // From this number
"99999999", // To this number
"First PHP Test message!"
);
答案 2 :(得分:0)
更改这些陈述
Yii::import('application.vendors.twilio-php.Services.Twilio.Resource.php');
到
include Yii::getPathOfAlias('application.vendors.twilio-php.Services.Twilio') . '/Resource.php';
答案 3 :(得分:0)
建议您先取消注册Yii自动加载器,然后让twilio加载其类并再次注册Yii自动加载器。在这种情况下,twilio文件夹位于protected / vendors / twilio:
中Yii::import('application.vendors.*',true);
spl_autoload_unregister(array('YiiBase','autoload'));
require_once(Yii::app()->basePath."/vendors/twilio/Services/Twilio.php");
spl_autoload_register(array('YiiBase', 'autoload'));