Laravel使用阿里云短信发送验证码
Song •
1548 次浏览 •
0个评论 •
2022年08月23日
环境要求
- 最低要求 PHP 5.6
- 安装 SDK 核心库 OpenAPI ,如果已在系统上全局安装 Composer,请直接在项目目录中运行以下内容来安装 Alibaba Cloud SDK for PHP 作为依赖项:
composer require alibabacloud/darabonba-openapi
- ⚠️注意:执行 composer 安装 SDK 的 PHP 版本要小于或等于实际运行时的 PHP 版本。 例如,在 PHP7.2 环境下安装 SDK 后生成 vendor 目录,只能在 PHP7.2 以上版本使用,如果拷贝到 PHP5.6 环境下使用,会出现依赖版本不兼容问题。
安装方式
Packagist
composer require alibabacloud/dysmsapi-20170525 2.0.18
示例背景
- 以下代码详细介绍了升级版 SDK 的使用步骤,仅作
步骤示范
。示例展示了如何调用 AddShortUrl API 进行创建短链请求。 - 说明: 您需要替换示例中的 accessKeyId 和 accessKeySecret 的值。
完整代码示例
以下为本文示例的完整 PHP SDK 代码。
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\AddShortUrlRequest;
class Sample {
/**
* 使用AK&SK初始化账号Client
* @param string $accessKeyId
* @param string $accessKeySecret
* @return Dysmsapi Client
*/
public static function createClient($accessKeyId, $accessKeySecret){
$config = new Config([
// 您的 AccessKey ID
"accessKeyId" => $accessKeyId,
// 您的 AccessKey Secret
"accessKeySecret" => $accessKeySecret
]);
// 访问的域名
$config->endpoint = "dysmsapi.aliyuncs.com";
return new Dysmsapi($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient("accessKeyId", "accessKeySecret");
$addShortUrlRequest = new AddShortUrlRequest([
"sourceUrl" => "your_value",
"shortUrlName" => "your_value"
]);
try {
// 复制代码运行请自行打印 API 的返回值
$client->addShortUrl($addShortUrlRequest);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 如有需要,请打印 error
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));
步骤介绍
- 初始化配置对象 Darabonba\OpenApi\Models\Config 。 Config 对象存放 accessKeyId、accessKeySecret 、endpoint 等配置,Endpoint 如示例中的 dysmsapi.aliyuncs.com 。
use Darabonba\OpenApi\Models\Config;
$config = new Config([
// 您的AccessKey ID
"accessKeyId" => $accessKeyId,
// 您的AccessKey Secret
"accessKeySecret" => $accessKeySecret
]);
// 访问的域名
$config->endpoint = "ecs-cn-hangzhou.aliyuncs.com";
- 实例化一个客户端,从 AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi 类生成对象 client 。从 Client 类中生成对象 client 。
use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
$client = new Dysmsapi($config);
- 初始化 RuntimeOptions ,该步骤可忽略。
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
$runtime = new RuntimeOptions();
$runtime->maxIdleConns = 3;
$runtime->connectTimeout = 10000;
$runtime->readTimeout = 10000;
- 创建对应 API 的 Request 。 类的命名规则为 API 方法名加上 Request 。例如:
$request = new AddShortUrlRequest();
- 设置请求类 request 的参数。 通过 request 类的属性设置必要的信息,即 API 中必须要提供的信息。
// 该参数值为假设值,请您根据实际情况进行填写
$request->SourceUrl = "your_value";
// 该参数值为假设值,请您根据实际情况进行填写
$request->ShortUrlName = "your_value";
- 通过client对象获得对应 request 响应 response 。
$response = $client->addShortUrl($request, $runtime);
var_dump($response->toMap());
- 调用 response->Body 中对应的属性获得返回的参数值。 假设您需要获取 requestId ;
var_dump($response->Body->requestId);
- 获取报错信息
catch (TeaUnableRetryError $e) {
// 获取报错数据
var_dump($e->getErrorInfo());
// 获取报错信息
var_dump($e->getMessage());
// 获取最后一次报错的 Exception 实例
var_dump($e->getLastException());
// 获取最后一次请求的 Request 实例
var_dump($e->getLastRequest());
}
更多相关好文
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
热门文章
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
-
electron安装使用better-sqlite3并解决NODE_MODULE_VERSION xxx. This version of Node.js requires 2024-11-06
-
Zerotier+Moon+Nginx实现内网穿透搭建网站 2024-08-23
Laravel模型更新全表如何实现?