laravel-5.7 - Twilio - Laravel 问题 - 创建客户端需要凭据
问题描述
我收到以下错误
[2018-12-18 12:12:46] local.ERROR: 创建客户端需要凭据 {"exception":"[object] (Twilio\Exceptions\ConfigurationException(code: 0): 创建客户端需要凭据C:\wamp64\www\_javid\javid\vendor\twilio\sdk\Twilio\Rest\Client.php:157 的客户端)
我将包括下面的代码和我用来创建它的源代码。我想补充一下,前几天晚上一切正常。
今天,我只是添加了一个新函数来处理将消息保存到数据库。然后我开始收到上述错误。自然地,我恢复了我的更改,但仍然是同样的错误。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Auth;
use JWTAuth;
use App\Item;
use Log;
use Twilio\Rest\Client;
class MessagingController extends Controller
{
protected $client;
public function __construct(Client $client){
$this->client = $client;
}
/**
* Show the form for creating a notification.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('notifications.create');
}
public function sendMessage(request $request){
$details = $request->only('membershipNumber', 'countryCode', 'message');
$user = User::where('membership_number', $details['membershipNumber'])->with('mobile_number')->first();
if(count($user)>0){
$this->messageSaveToDatabase($details, $user);
$this->messageSendToMobile($details, $user);
$this->messageSendToEmail($details, $user);
return response([
'status' => 'success',
'msg' => __('messages.success'),
'response' => $details
], 200);
} else {
return response([
'status' => 'error',
'msg' => __('messages.error')
], 200);
}
}
protected function messageSaveToDatabase($details, $user){
}
protected function messageSendToMobile($details, $user, $imageUrl = null){
$lineBreak = "\n\n";
$phoneNumber = $user->mobile_number->country_code.decrypt($user->mobile_number->number);
$message = "Hi member #".$details['membershipNumber'].$lineBreak.
$details['message'];
$twilioPhoneNumber = config('services.twilio')['phoneNumber'];
$messageParams = array(
'from' => $twilioPhoneNumber,
'body' => $message
);
if ($imageUrl) {
$messageParams['mediaUrl'] = $imageUrl;
}
$this->client->messages->create(
$phoneNumber,
$messageParams
);
}
protected function messageSendToEmail($details, $user){
}
}
我检查了TWILIO_ACCOUNT_SID
and TWILIO_AUTH_TOKEN
,这些都是正确的。
代码取自以下指南,我删除了订阅者部分。来自 Twilio 的指南
还有一件事,我在这里发现了以下内容,这表明我需要做这样的事情$client = new Client($keySid, $keySecret, $accountSid);
,但上面的指南并没有这样做,而且它也都是这样工作的。
任何帮助或建议都会很棒,我已经没有头发可以拔了:(
解决方案
经过更多的谷歌搜索和一些重新工作,我找到了一个可行的解决方案
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Auth;
use Twilio\Rest\Client;
class MessagingController extends Controller
{
protected function messageSendToMobile($details, $message, $user, $imageUrl = null){
$accountSid = env('TWILIO_ACCOUNT_SID');
$authToken = env('TWILIO_AUTH_TOKEN');
$twilioNumber = env('TWILIO_PHONE_NUMBER');
$lineBreak = "\n\n";
$to = $user->mobile_number->country_code.decrypt($user->mobile_number->number);
$client = new Client($accountSid, $authToken);
try {
$client->messages->create(
$to,
[
"body" => $message,
"from" => $twilioNumber
]
);
Log::info('Message sent to ' . $twilioNumber);
} catch (TwilioException $e) {
Log::error(
'Could not send SMS notification.' .
' Twilio replied with: ' . $e
);
}
}
}
推荐阅读
- sql - 使用 WRDS MSRB 数据集上的 SQL 查询从许多 CUSIP 中检索数据
- flutter - 如果 body 为空,如何停止在 nestedScrollView 中滚动
- python - 了解路径/环境/streamlit
- django - 在 django 的同一页面上显示 3 个单独的表单
- flutter - 为什么图片不是每个时间段都变化?
- unity3d - 如何检查 Vector3 的 X 或 Y 分量是否增加或减少
- php - cakephp 创建一个会话变量,该变量可在不同的前缀 url 上访问
- python - 虚拟环境混乱
- laravel - laravel-snappy 中的“退出状态码 137”是什么意思?
- php - 从 WooCommerce 订单中获取受保护的自定义订单商品元数据数组