关于中国电信天翼开放平台短信接口的一些使用
Posted Sunnor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于中国电信天翼开放平台短信接口的一些使用相关的知识,希望对你有一定的参考价值。
关于获取访问令牌的部分的说明:
天翼短信接口的开发文档链接:http://open.189.cn/index.php?m=content&c=index&a=lists&catid=62
实际上获取令牌非常简单,就是根据短信接口的说明把接口地址和要求的参数组装好,然后发送一个post请求,然后就能够获取到返回的json格式的字符串。
根据刚刚上面的短信接口开放文档说明,我们选择获取令牌最简单的方式,也就是文档里的“应用场合二”,
应用场合二:在oAuth 2.0的标准Client Credentials授权模式(简称CC授权模式)下,应用可凭借自身的应用ID和应用密钥,通过调用该接口,直接获得无需用户授权的AT访问令牌(User-Independent Access Token,简称UIAT)。
不同于普通的AT令牌,UIAT令牌其只能用于调用无需用户授权的开放API接口,如获取音乐榜单等;而普通的AT令牌则既可用于调用需要用户授权的开放API接口,又可用于调用无需用户授权的开放接口。UIAT令牌多用于无需用户登录的合作应用场合,尽管其使用范围较普通AT令牌相对受限,但二者的数据形式是基本一致的。
调用地址:https://oauth.api.189.cn/emp/oauth2/v3/access_token
请求方式:post
承载协议:https
参数:
以下代码可以正常获取token:
1 package com.wyl.sms; 2 3 import java.io.IOException; 4 5 import com.wyl.http.UtilHttp; 6 7 public class UtilSMS { 8 private static String APP_ID = "你自己的appid"; 9 private static String APP_SECRET = "你自己的secret"; 10 //获取访问令牌的接口地址 ,详见 http://open.189.cn/index.php?m=content&c=index&a=lists&catid=62 接口文档 11 private static String URL_GET_TOKEN = "https://oauth.api.189.cn/emp/oauth2/v3/access_token"; 12 13 14 /** 15 * 组装参数 16 * 详见:http://open.189.cn/index.php?m=content&c=index&a=lists&catid=62 17 * @param refresh_token 18 * @param app_id 19 * @param app_secret 20 * @param state 21 * @return 22 */ 23 @SuppressWarnings("all") 24 private static String buildPara(String app_id,String app_secret,String state){ 25 StringBuilder entity = new StringBuilder(); 26 entity.append("grant_type="+"client_credentials"); 27 entity.append("&app_id="+app_id); 28 entity.append("&app_secret="+app_secret); 29 entity.append("&state="+state); 30 return entity.toString(); 31 } 32 /** 33 * 获取访问令牌 34 * @return 返回电信服务器返回的json格式的token等信息 35 * @throws IOException 36 */ 37 public static String getAccessToken() throws IOException{ 38 String weburl = URL_GET_TOKEN+"?"+buildPara(APP_ID, APP_SECRET, "320"); 39 String token = UtilHttp.sendPostRequest(weburl); 40 return token; 41 } 42 /** 43 * 正常获取到token 44 * @param args 45 * @throws IOException 46 */ 47 public static void main(String[] args) throws IOException { 48 System.out.println("token:"+getAccessToken()); 49 } 50 }
UtilHttp.java:
1 package com.wyl.http; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.net.HttpURLConnection; 7 import java.net.URL; 8 9 public class UtilHttp { 10 public UtilHttp(){ 11 12 } 13 /** 14 * 根据传入的url地址,发送post请求 15 * @param weburl 16 * @return 返回请求返回的数据,转换成String 17 * @throws IOException 18 */ 19 public static String sendPostRequest(String weburl) throws IOException{ 20 URL url = new URL(weburl); 21 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 22 conn.setDoInput(true); 23 conn.setDoOutput(true); 24 conn.setRequestMethod("POST"); 25 conn.connect(); 26 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 27 String line; 28 StringBuilder builder = new StringBuilder(); 29 while ((line = reader.readLine())!=null) { 30 builder.append(line); 31 } 32 return (builder.toString()==null?"":builder.toString()); 33 } 34 }
,代码执行结果:
以上是关于关于中国电信天翼开放平台短信接口的一些使用的主要内容,如果未能解决你的问题,请参考以下文章
中国电信天翼物联网平台CTWing学习笔记——设备接入(TCP协议)