阿里云云市场 api 签名调用 sdk
阿里云云市场 api 签名调用 sdk
本文初次编写时间:2024-10-17
需求
1、在阿里云云市场购买了 api 接口,但是不想使用示例 php 代码中的“API简单身份认证调用”,想使用更加安全的“API签名认证调用”
实现
- 根据阿里云官方的签名调用示例代码,编写了 sdk ,并上传到 composer 库,这样可以最方便的使用。实际的改动也就是加个命名空间,基本没怎么改。
- 本项目的目的,在阿里云市场购买 api 接口后,不想使用不安全的 API 简单身份调用认证,想使用更安全的 API 签名调用认证,但苦于没有现成的 composer 库,本项目来提供解决方案。
- 签名调用的原理参见官网:help.aliyun.com/zh/api-gateway/tra...
- 最主要的代码在 Util/HttpUtil.php
- 排查错误,可以使用返回对象的 getContent() 等方法,会完整打印出所有返回信息含头信息。正常只需 getBody() 就可以得到接口的返回信息。
- 如想自己修改代码,无需改本类库,只需把类库根目录下的 ApiClient.php 取出拷贝到自己项目,然后随便改改就好用了。
- 本项目创建时间 2024-10-17
代码示例
// 这是一个示例,展示了如何使用本sdk调用接口。
$appKey='20XXXXXX';
$appSecret='zVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$host='https://XXXXX.market.alicloudapi.com';
$path = "/XXX/XXX";
$help = \YYY\Aliyun\ApiGateWay\ApiClient::getInstance( $appKey, $appSecret );
// 只有post,get两个方法。
$response = $help->post( $host, $path,[
'name'=>'XXXX', 'account'=>'1XXXXXXXXXXXXXXXXXXX',] );
// 返回是字符串。
echo $response->getBody();
// 返回类似如下代码,特别注意,每个接口返回的字段都很不一样。不可以套用。
//{"data":{"count":1,"items":[{"Name":"XXX","Abc":"IC","province":""}]},"msg":"成功","success":true,"taskNo":"742436029166773500611327"}
安装流程
composer require yyy/aliyun_api_gateway
如果有问题,就切换到 官方的composer镜像。
总结
1、调用更加安全,因为使用了签名认证。
本作品采用《CC 协议》,转载必须注明作者和本文链接