Php 如何修复Laravel 5.8中twillio API SMS验证中的客户端错误?
我正在为移动应用开发人员制作web服务。我想在laravel制作OTP。我正在尝试用twillio试用短信来实现这一点。通过此链接进行此操作Php 如何修复Laravel 5.8中twillio API SMS验证中的客户端错误?,php,laravel,api,web-services,one-time-password,Php,Laravel,Api,Web Services,One Time Password,我正在为移动应用开发人员制作web服务。我想在laravel制作OTP。我正在尝试用twillio试用短信来实现这一点。通过此链接进行此操作 您尝试的URL无效。URL中缺少帐户SID。格式应为https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json 您的案例中的代码问题。检查您是否为config('app.twilio')['twilio\u ACCOUNT\u SID']设置了值,该值似乎为空,并且您的代码
您尝试的URL无效。URL中缺少帐户SID
。格式应为https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json
您的案例中的代码问题。检查您是否为config('app.twilio')['twilio\u ACCOUNT\u SID']
设置了值,该值似乎为空,并且您的代码没有在帖子URL中追加twilio帐户id并抛出404
在他们的上阅读更多内容,因此在我的例子中,这是{$accountSid}/Messages.jsonI更新答案的正确方法,请查看更新的答案。$result=$client->post('https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.json',
此行不正确。应为$result=$client->post("https://api.twilio.com/2010-04-01/Accounts/$accountSid/Messages.json“
使用问题中的当前版本更新代码。在try语句之前运行dd(config('app.twilio')['twilio\u ACCOUNT\u SID'))
并查看您是否获得了预期的帐户sid。您是否阅读了错误消息?检查发送请求的URL。错误是:$accountSid.config('app.twilio')['twilio\u account\u sid'])中的值为空。它没有从config/app.php中获取值
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Twilio\Jwt\ClientToken;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
use phpseclib\Crypt\Random;
class SmsController extends Controller
{
protected $code, $smsVerification;
function __construct()
{
$this->smsVerification = new \App\SmsVerification();
}
public function store (Request $request)
{
$code = rand(1000,9999); // Generate Random Code
$request['code'] = $code; // Add code in request body.
$this->smsVerification->store($request); //call store method of model
return $this->sendSms($request); // send and return its response
}
public function sendSms($request)
{
$accountSid = config('app.twilio')['TWILIO_ACCOUNT_SID'];
$authToken = config('app.twilio')['TWILIO_AUTH_TOKEN'];
try
{
$client = new Client(['auth' => [$accountSid, $authToken]]);
$result = $client->post("https://api.twilio.com/2010-04-01/Accounts/$accountSid/Messages.json",
['form_params' => [
'Body' => 'CODE: '. $request->code, //set message body
'To' => $request->contact_number,
'From' => '+12056193751' //we get this number from twilio
]]);
return $result;
}
catch (Exception $e)
{
echo "Error: " . $e->getMessage();
}
}
}