热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

七牛云短信JavaPHPPythonGo语言接入

目录产品定价注意短信发送频率限制短信内容长度计算规则Java接入1.创建签名代码运行结果2.创建和列举模板运行结果3.发送短信运行结果Python接入代码运行结果PHP接入代码运行

目录

  • 产品定价
  • 注意
    • 短信发送频率限制
    • 短信内容长度计算规则
  • Java 接入
    • 1. 创建签名代码
    • 运行结果
    • 2. 创建和列举模板
    • 运行结果
    • 3. 发送短信
    • 运行结果
  • Python 接入
    • 代码
    • 运行结果
  • PHP 接入
    • 代码
    • 运行结果
  • GO 接入
    • 代码
    • 运行结果
  • 参考
  • 建议

代码的接入,基于七牛官方 sdk。

产品定价

七牛云短信 - Java PHP Python Go 语言接入

注意

短信发送频率限制

七牛云短信 - Java PHP Python Go 语言接入

短信内容长度计算规则

  • 短信字数 = 短信模版内容字数 + 签名字数
  • 短信字数 ≤ 70 个字数,按照 70 个字数一条短信计算
  • 短信字数 > 70 个字数,即为长短信,按照 67 个字数记为一条短信计算

Java 接入

代码具体见 Github

1. 创建签名代码

创建好后需要等待审核

import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Client;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.util.Auth;
import com.qiniu.util.Base64;
import com.qiniu.util.Json;
import com.qiniu.util.StringMap;
import me.lj.qiniu.config.Config;

/**
 * 创建签名
 * https://developer.qiniu.com/sms/api/5844/sms-api-create-signature
 */
public class CreateSignature {
    public static void main(String[] args) throws QiniuException {
        String ACCESS_KEY = "";
        String SECRET_KEY = "";

        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

        String url = "https://sms.qiniuapi.com/v1/signature";
        String host = "sms.qiniuapi.com";
        String cOntentType= "application/json";
        String body = "{\"signature\":\"Test1\",\"source\":\"website\"}";

        String qiniuToken = "Qiniu "+auth.signRequestV2(url, "POST", body.getBytes(), contentType);
        System.out.println(qiniuToken);

        StringMap header = new StringMap();
        header.put("Host", host);
        header.put("Authorization", qiniuToken);
        header.put("Content-Type", contentType);
        Configuration c = new Configuration(Zone.zone1());
        Client client = new Client(c);
        Response respOnse= client.post(url, body.getBytes(), header, contentType);

        System.out.println("Response: " + response.bodyString());
    }
}

运行结果

运行成功,返回 signature_id

七牛云短信 - Java PHP Python Go 语言接入

2. 创建和列举模板

public class CreateAndListTemplate {
    public static void main(String[] args) throws QiniuException {
        String accessKey = Config.SMS_ACCESS_KEY;
        String secretKey = Config.SMS_SECRET_KEY;

        Auth auth = Auth.create(accessKey, secretKey);
        String url;
        String host;
        String contentType;
        String method;
        String body;
        Response response;

        //create
        url = "https://sms.qiniuapi.com/v1/template";
        host = "sms.qiniuapi.com";
        cOntentType= "application/json";
        method = "POST";
        //{ "name": "test-template", "template": "Test1", "type": "verification", "description": "测试", "signature_id": "1131017766455742464" }
        body = "{ \"name\": \"test-t\", \"template\": \"Test1\", \"type\": \"verification\", \"description\": \"测试\", \"signature_id\": \"1131017766455742464\" }";
        respOnse= RPCCall.call(auth, url, host, contentType, method, body);
        System.out.println("Create Res: " + response.bodyString());

        //list
        url = "https://sms.qiniuapi.com/v1/template";
        cOntentType= "application/x-www-form-urlencoded";
        method = "GET";
        respOnse= RPCCall.call(auth, url, host, contentType, method, "");
        System.out.println("List Res: " + response.bodyString());

    }
}

运行结果

七牛云短信 - Java PHP Python Go 语言接入

创建好后需要等待审核

3. 发送短信

/**
 * 短信
 * https://developer.qiniu.com/sms/api/5897/sms-api-send-message
 */
public class SnedMessage {
    public static void main(String[] args) throws QiniuException {
        String accessKey = Config.SMS_ACCESS_KEY;
        String secretKey = Config.SMS_SECRET_KEY;

        Auth auth = Auth.create(accessKey, secretKey);
        String url;
        String host;
        String contentType;
        String method;
        String body;
        Response response;

        //send
        url = "https://sms.qiniuapi.com/v1/message";
        host = "sms.qiniuapi.com";
        cOntentType= "application/json";
        method = "POST";
        body = "{ \"signature_id\": \"1131017766455742464\", \"template_id\": \"1131211147840589824\", \"mobiles\": [ \"18801732070\" ], \"parameters\": { \"code\": 123456 } }";
        respOnse= RPCCall.call(auth, url, host, contentType, method, body);

        System.out.println("send Res: " + response.bodyString());
    }
}

运行结果

调用成功,返回 job_id。

七牛云短信 - Java PHP Python Go 语言接入

接收到短信
七牛云短信 - Java PHP Python Go 语言接入

Python 接入

代码

运行结果

运行成功,返回 signature_id

七牛云短信 - Java PHP Python Go 语言接入

七牛 portal 界面显示新创建的签名
七牛云短信 - Java PHP Python Go 语言接入

PHP 接入

代码

authorizationV2($url, $method, $body, $contentType);
$headers['Content-Type'] = $contentType;
$headers['Host'] = $host;

$respOnse= Client::post($url, $bodyJson, $headers);
$r = $response->json();
var_dump($r);
if ($response->ok()) {
    $r = $response->json();
    var_dump($r);
}

运行结果

返回

{
  'signature_id' =>
  string(19) "1131051944643665920"
}

七牛云短信 - Java PHP Python Go 语言接入

GO 接入

sdk 代码见:https://github.com/qiniu/api.v7/tree/master/sms

代码

package sms_test

import (
    "testing"

    "github.com/qiniu/api.v7/sms"
)

func TestSignature(t *testing.T) {

    // CreateSignature
    args := sms.SignatureRequest{
        Signature: "Test",
        Source:    sms.Website,
    }

    ret, err := manager.CreateSignature(args)

    if err != nil {
        t.Fatalf("CreateSignature() error: %v\n", err)
    }

    if len(ret.SignatureID) == 0 {
        t.Fatal("CreateSignature() error: The signature ID cannot be empty")
    }

    // QuerySignature
    query := sms.QuerySignatureRequest{}

    pagination, err := manager.QuerySignature(query)

    if err != nil {
        t.Fatalf("QuerySignature() error: %v\n", err)
    }

    if len(pagination.Items) == 0 {
        t.Fatal("QuerySignature() error: signatures cannot be empty")
    }

    if pagination.Total == 0 {
        t.Fatal("QuerySignature() error: total cannot be 0")
    }

    // UpdateSignature
    update := sms.SignatureRequest{
        Signature: "test",
    }

    err = manager.UpdateSignature(ret.SignatureID, update)
    if err != nil {
        t.Fatalf("UpdateSignature() error: %v\n", err)
    }

    // DeleteSignature
    err = manager.DeleteSignature(ret.SignatureID)
    if err != nil {
        t.Fatalf("DeleteSignature() error: %v\n", err)
    }

}

运行结果

七牛云短信 - Java PHP Python Go 语言接入

参考

七牛云短信

建议

  1. 不要叫管理凭证,容易和存储混淆 七牛云短信 - Java PHP Python Go 语言接入

推荐阅读
author-avatar
小森林
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有