>PHP 프레임워크 >Laravel >Laravel을 사용하여 문자 메시지를 보내고 받는 방법

Laravel을 사용하여 문자 메시지를 보내고 받는 방법

WBOY
WBOY원래의
2023-11-03 16:40:50973검색

Laravel을 사용하여 문자 메시지를 보내고 받는 방법

Laravel을 사용하여 SMS 송수신 기능을 구현하려면 구체적인 코드 예제가 필요합니다.

Laravel은 SMS 송수신을 포함한 다양한 기능을 쉽게 구현할 수 있는 인기 있는 PHP 프레임워크입니다. 이 글에서는 Laravel 프레임워크를 사용하여 SMS 전송 및 수신 기능을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다.

1. SMS 전송 기능 구현

  1. SMS 서비스 제공업체 구성

SMS를 보내려면 먼저 SMS 서비스 제공업체를 구성해야 합니다. 일반적인 SMS 서비스 제공업체에는 Alibaba Cloud, Tencent Cloud 등이 있습니다. 여기서는 Alibaba Cloud SMS를 예로 들어보겠습니다.

.env 파일에 다음 구성을 추가하세요.

ALIYUN_ACCESS_KEY_ID=your_access_key_id
ALIYUN_ACCESS_KEY_SECRET=your_access_key_secret
ALIYUN_SMS_SIGN_NAME=your_sms_sign_name
ALIYUN_SMS_TEMPLATE_CODE=your_sms_template_code

your_access_key_idyour_access_key_secret를 Alibaba Cloud AccessKey ID 및 AccessKey Secret으로 바꾸세요. your_sms_sign_name 바꾸기 를 SMS 서명 이름으로 바꾸고, <code>your_sms_template_code를 SMS 템플릿 코드로 바꾸세요. your_access_key_idyour_access_key_secret替换为你的阿里云的AccessKey ID和AccessKey Secret;将your_sms_sign_name替换为你的短信签名名称;将your_sms_template_code替换为你的短信模板代码。

  1. 创建发送短信的方法

在app/Http/Controllers目录下创建SmsController.php文件,并添加以下代码:

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use AlibabaCloudClientAlibabaCloud;
use AlibabaCloudClientExceptionClientException;
use AlibabaCloudClientExceptionServerException;
 
class SmsController extends Controller
{
    public function sendSms(Request $request)
    {
        $phoneNumber = $request->input('phone_number');
        $code = $request->input('code');
 
        AlibabaCloud::accessKeyClient(
            config('app.aliyun_access_key_id'),
            config('app.aliyun_access_key_secret')
        )
        ->regionId('cn-hangzhou')
        ->asDefaultClient();
 
        try {
            $result = AlibabaCloud::rpc()
                                ->product('Dysmsapi')
                                ->host('dysmsapi.aliyuncs.com')
                                ->version('2017-05-25')
                                ->action('SendSms')
                                ->method('POST')
                                ->options([
                                    'query' => [
                                        'PhoneNumbers' => $phoneNumber,
                                        'SignName' => config('app.aliyun_sms_sign_name'),
                                        'TemplateCode' => config('app.aliyun_sms_template_code'),
                                        'TemplateParam' => json_encode([
                                            'code' => $code,
                                        ]),
                                    ],
                                ])
                                ->request();
 
            return response()->json([
                'message' => 'SMS sent successfully',
                'result' => $result->toArray(),
            ]);
        } catch (ClientException $e) {
            return response()->json([
                'message' => 'Client exception occurred',
                'error' => $e->getErrorMessage(),
            ], 500);
        } catch (ServerException $e) {
            return response()->json([
                'message' => 'Server exception occurred',
                'error' => $e->getErrorMessage(),
            ], 500);
        }
    }
}
  1. 配置路由

在routes/web.php文件中添加以下代码:

Route::post('/sms/send', 'SmsController@sendSms');
  1. 发送短信

可以通过发送POST请求到/sms/send路由来发送短信。请求参数中需要包含phone_numbercode参数。例如,可以使用Postman工具发送以下请求:

POST /sms/send HTTP/1.1
Host: your-domain.com
Content-Type: application/json
Authorization: Bearer your-token
Content-Length: 68
 
{
    "phone_number": "your-phone-number",
    "code": "123456"
}

以上示例中,将your-domain.com替换为你的域名,your-token替换为你的认证令牌,your-phone-number替换为要接收短信的手机号。

二、短信接收功能的实现

要实现短信接收功能,可以使用第三方短信平台提供的API接口。这里以云片网为例进行讲解。

  1. 注册云片网账号

首先需要在云片网上注册账号,然后登录并获取API key。

  1. 创建接收短信的方法

在app/Http/Controllers目录下创建SmsController.php文件,并添加以下代码:

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use IlluminateSupportFacadesHttp;
 
class SmsController extends Controller
{
    public function receiveSms(Request $request)
    {
        $content = $request->input('content');
        $phoneNumber = $request->input('phone_number');
 
        // 处理短信内容的逻辑
 
        // 返回响应
        return response('success');
    }
}
  1. 配置路由

在routes/web.php文件中添加以下代码:

Route::post('/sms/receive', 'SmsController@receiveSms');
  1. 接收短信

可以通过发送POST请求到/sms/receive路由来接收短信。请求参数中需要包含contentphone_number

    SMS를 보내는 메서드 만들기

    app/Http/Controllers 디렉터리에 SmsController.php 파일을 만들고 다음 코드를 추가하세요:

    rrreee
      🎜 라우팅 구성 🎜🎜🎜routes/web.php 파일에 다음 코드를 추가하세요: 🎜rrreee
        🎜SMS 보내기 🎜🎜🎜는 /sms/에 POST 요청을 보내서 수행할 수 있습니다. 보내기 문자 메시지 보내기를 라우팅합니다. 요청 매개변수에는 phone_numbercode 매개변수가 포함되어야 합니다. 예를 들어 Postman 도구를 사용하여 다음 요청을 보낼 수 있습니다. 🎜rrreee🎜위 예에서 your-domain.com을 도메인 이름과 your-token으로 바꿉니다. > 인증 토큰을 사용하여 your-phone-number를 문자 메시지를 받을 휴대폰 번호로 바꾸세요. 🎜🎜2. SMS 수신 기능 구현 🎜🎜SMS 수신 기능을 구현하려면 타사 SMS 플랫폼에서 제공하는 API 인터페이스를 사용할 수 있습니다. 여기서는 Yunpian.com을 예로 들어 설명하겠습니다. 🎜🎜🎜Yunpian.com 계정 등록🎜🎜🎜먼저 Yunpian.com에 계정을 등록한 후 로그인하여 API 키를 받아야 합니다. 🎜
          🎜SMS 수신 메소드 생성 🎜🎜🎜app/Http/Controllers 디렉토리에 SmsController.php 파일을 생성하고 다음 코드를 추가하세요: 🎜rrreee
            🎜 라우팅 구성 🎜🎜🎜routes/web.php 파일에 다음 코드를 추가하세요: 🎜rrreee
              🎜SMS 수신 🎜🎜🎜은 /sms/에 POST 요청을 보내서 수행할 수 있습니다. receive 경로 문자 메시지를 받습니다. 요청 매개변수에는 contentphone_number 매개변수가 포함되어야 합니다. 특정 SMS 콘텐츠 처리 로직은 인터페이스 문서에 따라 작성되어야 합니다. 🎜🎜예를 들어, 수신된 문자 메시지 내용은 타사 API 인터페이스를 호출하여 처리할 수 있습니다. 🎜🎜위 내용은 Laravel 프레임워크를 사용하여 SMS 송수신 기능을 구현하는 구체적인 방법과 코드 예시입니다. 실제 필요에 따라 수정하고 확장할 수 있습니다. 도움이 되었기를 바랍니다! 🎜

위 내용은 Laravel을 사용하여 문자 메시지를 보내고 받는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.