使用PHP调用openAPI
本帖最后由 microsnow 于 2015-3-27 03:48 编辑test.php下面是调用登录接口,为实例。需要配置 appidusername password 。代码如下:
<?php
$appid = 'xxxxxxxxxx';
require_once './http.class.php';
// 参数数组
$data = array (
'username' => 'xxxxxxxxx',
'password' => 'xxxxxxxx',
);
$uri = '/app/login';
$r = Gokit_Http::post($uri, $data);
var_dump($r);
?>http.class.php
<?php
class Gokit_Http
{
public static $ch = null;
public static $url_prefix = 'http://api.gizwits.com';
public static $appid = '';
// 初始化curl
public static function init()
{
if (!self::$ch) {
self::$ch = curl_init();
}
global $appid;
self::$appid = $appid;
}
// post 请求
public static function post($uri, $data)
{
self::init();
// 传输的json数据
$data = json_encode($data);
// 组拼Header
$headerArr = ["X-Gizwits-Application-Id: ".self::$appid , 'Content-Type: application/json'];
// curl 设置
curl_setopt ( self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
curl_setopt ( self::$ch, CURLOPT_POST, 1 );
curl_setopt ( self::$ch, CURLOPT_HEADER, 0 );
curl_setopt (self::$ch, CURLOPT_HTTPHEADER , $headerArr );//构造IP
curl_setopt (self::$ch, CURLOPT_BINARYTRANSFER,true);
curl_setopt ( self::$ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( self::$ch, CURLOPT_POSTFIELDS, $data );
$r = curl_exec ( self::$ch );
curl_close ( self::$ch );
self::$ch = null;
// 处理结果
return self::response($r);
}
// 处理输出
public static function response($r)
{
if ($r) {
$r = json_decode($r, true);
if ($r) {
return $r;
}
}
return '请求失败:'.var_export($r, true);
}
}
?>
请问test是起什么作用的 H文举 发表于 2015-3-30 21:32
请问test是起什么作用的
test.php 调用的是登录接口 请问如果要向服务器get数据该怎么**作呢,能提供一下例程吗(比如获取设备最近上传数据点 ),谢谢 H文举 发表于 2015-4-3 17:16
请问如果要向服务器get数据该怎么**作呢,能提供一下例程吗(比如获取设备最近上传数据点 ),谢谢 ...
<?php
class Gokit_Http
{
public static $ch = null;
public static $url_prefix = 'http://api.gizwits.com/';
// public static $url_prefix = 'http://gokit_test.com/';
public static $appid = '';
public static $token = '';
public static $headerArr = [];
// 初始化curl
public static function init()
{
if (!self::$ch) {
self::$ch = curl_init();
}
global $appid,$token;
self::$headerArr[] = 'Content-Type: application/json';
if ($appid) {
self::$headerArr[] = "X-Gizwits-Application-Id: ".$appid;
}
if ($token) {
self::$headerArr[] = "X-Gizwits-User-token: ".$token;
}
}
// post 请求
public static function post($uri, $data)
{
self::init();
// 传输的json数据
$data = json_encode($data);
// curl 设置
curl_setopt(self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
curl_setopt(self::$ch, CURLOPT_POST, 1 );
curl_setopt(self::$ch, CURLOPT_HEADER, 0 );
curl_setopt(self::$ch, CURLOPT_HTTPHEADER , self::$headerArr );//构造IP
curl_setopt(self::$ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt(self::$ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt(self::$ch, CURLOPT_POSTFIELDS, $data);
$r = curl_exec(self::$ch);
curl_close(self::$ch);
self::$ch = null;
// 处理结果
// test
return $r;
return self::response($r);
}
// get 请求
public static function get($uri)
{
self::init();
// curl 设置
curl_setopt(self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
curl_setopt(self::$ch, CURLOPT_HTTPHEADER , self::$headerArr );//构造IP
curl_setopt(self::$ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt(self::$ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt(self::$ch, CURLOPT_HEADER, 0 );
$r = curl_exec ( self::$ch );
curl_close ( self::$ch );
self::$ch = null;
// 处理结果
return self::response($r);
}
// get 请求
public static function delete($uri, $data = [])
{
self::init();
// curl 设置
curl_setopt(self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
$data = json_encode($data);
curl_setopt(self::$ch, CURLOPT_POSTFIELDS, $data);
curl_setopt(self::$ch, CURLOPT_HTTPHEADER , self::$headerArr );//构造IP
curl_setopt(self::$ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt(self::$ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt(self::$ch, CURLOPT_HEADER, 0 );
curl_setopt(self::$ch, CURLOPT_CUSTOMREQUEST, "DELETE");
$r = curl_exec ( self::$ch );
curl_close ( self::$ch );
self::$ch = null;
// 处理结果
return self::response($r);
}
// 处理输出
public static function response($r)
{
if ($r) {
$r = json_decode($r, true);
if ($r) {
return $r;
}
}
return '请求失败:'.var_export($r, true);
}
}
?> H文举 发表于 2015-4-3 17:16
请问如果要向服务器get数据该怎么**作呢,能提供一下例程吗(比如获取设备最近上传数据点 ),谢谢 ...
我是写的Gokit_Http类,希望对你有用 好的,非常感谢 谢谢分享学习一下 谢谢分享,感谢楼主。 楼主虚拟设备上面搞这个,网页调用,发现连不上啊,手机上APP用手机号码登录是可以的呢。
array(3) { ["error_message"]=> string(20) "user does not exist!" ["error_code"]=> int(9005) ["detail_message"]=> NULL }
我用手机号码登录的啊。 johnvuong1999 发表于 2015-6-21 09:15
楼主虚拟设备上面搞这个,网页调用,发现连不上啊,手机上APP用手机号码登录是可以的呢。
array(3) { ["er ...
提示是用户不存在,需要先调用注册接口进行注册 想弱弱的问一下这个用户名和密码是机智云的吗?入门蒙
页:
[1]