php 调用极光api,利用php+curl调用极光IM第三方REST API方法经验

最近的一个项目,用到了极光IM的REST API,由于他们官方没有开发完服务器端的PHP版本的SDK,只能直接封装这些REST API。REST API的调用大同小异,这次的尝试,可以在其他的项目里举一反三。

php里面,模拟客户端发送http请求,可以使用curl工具或者叫做库。php安装的时候,curl默认会自动安装,如果没有安装,请自行根据自己的平台进行安装。

为了测试 远程的REST API是否正常,可以先直接在终端里面,用命令行的方式。

有两种方法使用curl,一种在直接运行curl工具,另一种是在php里面调用curl库函数,下面以极光IM的重置密码为例。

1.运行curl工具。例如调用极光IM的重置密码的API时,采用的是PUT方法,且需要加入验证信息。

curl -v -H "Content-Type:application/json" -H "Authorization: Basic MjY54445OWR222Y2YTMzZTJiMzgwZjI1OmRlNGMzOGFjZDBhODRhM2E5YmQ1MGI0Ng==" -X PUT --data "{ "new_password":234567}" https://api.im.jpush.cn/v1/users/15800645816/password因为头信息需要两个,采取了(),{}的方式都不成功,只能这样比较粗暴的方式,使用两次-H。

2.创建两个函数,一个封装curl的和服务器交换方法,一个是自己的业务逻辑函数。

//重置密码调用

public function putim_curl($mobile, $param = "", $header = "") {

if (empty($param)) { return false; }

$str = "/v1/users/".$mobile."/password";

$putUrl = "https://api.im.jpush.cn".$str;

$ch = curl_init(); //初始化curl

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

curl_setopt($ch, CURLOPT_URL,$putUrl); //目标网页

// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //要求结果为字符串且输出到屏幕上

curl_setopt($ch, CURLOPT_HTTPHEADER,$header); // 增加 HTTP Header(头)里的字段

curl_setopt($ch, CURLOPT_POSTFIELDS, $param);

$data = curl_exec($ch); //运行curl

curl_close($ch);

return $data;

}

//重置密码

public function putResetPassword(){

$mobile = $_REQUEST['mobile'];

$newpass = $_REQUEST['new_pass'];

if(empty($mobile) || empty($newpass)){

return FALSE;

} else {

$str = $this->app_key.":".$this->master_secret;

$base64=base64_encode($str);

$header[] = 'Content-Type:application/json';

$header[] = 'Authorization: Basic '.$base64;

$data = array(

"new_password"=>$newpass

);

$data = json_encode($data);

$res = $this->putim_curl($mobile,$data,$header);

print_r($res);

if($res[0]){ //得到返回值--成功已否后面判断

var_dump($res);

}else{ //未得到返回值--返回失败

//return false;

echo 0;

}

}

}最后吐槽一下,极光IM那边的人对免费用户的服务态度好差,,,遇到问题了,老半天得不到他们的回复,回复也不详细,,,php的他们说没有用,不会看。。。。。呵呵。

写本博客的,就是希望给使用php开发的亲一个少走弯路的机会,如果还有问题,我们可以沟通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值