收藏官网首页
查看: 20882|回复: 12

使用PHP调用openAPI

5

主题

13

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
跳转到指定楼层
楼主
发表于 2015-3-27 03:45:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
校园创客福利
本帖最后由 microsnow 于 2015-3-27 03:48 编辑

test.php  下面是调用登录接口,为实例。需要配置 appid  username password 。代码如下:
  1. <?php
  2. $appid = 'xxxxxxxxxx';

  3. require_once './http.class.php';

  4. // 参数数组
  5. $data = array (
  6.         'username' => 'xxxxxxxxx',
  7.         'password' => 'xxxxxxxx',
  8. );

  9. $uri = '/app/login';
  10. $r = gokit_Http::post($uri, $data);
  11. var_dump($r);
  12. ?>
复制代码
http.class.php
  1. <?php
  2.         class Gokit_Http
  3.         {
  4.                 public static $ch = null;
  5.                 public static $url_prefix = 'http://api.gizwits.com';

  6.                 public static $appid = '';

  7.                 // 初始化curl
  8.                 public static function init()
  9.                 {
  10.                         if (!self::$ch) {
  11.                                 self::$ch = curl_init();
  12.                         }
  13.                         global $appid;
  14.                         self::$appid = $appid;
  15.                 }

  16.                 // post 请求
  17.                 public static function post($uri, $data)
  18.                 {
  19.                         self::init();
  20.                         // 传输的json数据
  21.                         $data = json_encode($data);
  22.                         // 组拼Header
  23.                         
  24.                         $headerArr = ["X-Gizwits-Application-Id: ".self::$appid , 'Content-Type: application/json'];
  25.                         // curl 设置
  26.                         curl_setopt ( self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
  27.                         curl_setopt ( self::$ch, CURLOPT_POST, 1 );
  28.                         curl_setopt ( self::$ch, CURLOPT_HEADER, 0 );
  29.                         curl_setopt (self::$ch, CURLOPT_HTTPHEADER , $headerArr );  //构造IP
  30.                         curl_setopt (self::$ch, CURLOPT_BINARYTRANSFER,true);
  31.                         curl_setopt ( self::$ch, CURLOPT_RETURNTRANSFER, 1 );
  32.                         curl_setopt ( self::$ch, CURLOPT_POSTFIELDS, $data );
  33.                         $r = curl_exec ( self::$ch );
  34.                         curl_close ( self::$ch );
  35.                         self::$ch = null;
  36.                         // 处理结果
  37.                         return self::response($r);
  38.                 }

  39.                 // 处理输出
  40.                 public static function response($r)
  41.                 {
  42.                         if ($r) {
  43.                                 $r = json_decode($r, true);
  44.                                 if ($r) {
  45.                                         return $r;
  46.                                 }
  47.                         }
  48.                         return '请求失败:'.var_export($r, true);
  49.                 }
  50.         }
  51. ?>
复制代码



gokit_test.com.rar

1.08 KB, 下载次数: 50, 下载积分: 威望 1

附件

4

主题

14

帖子

145

积分

注册会员

Rank: 2

积分
145
沙发
发表于 2015-3-30 21:32:16 | 只看该作者
请问test是起什么作用的

5

主题

13

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
板凳
 楼主| 发表于 2015-3-30 23:39:51 | 只看该作者
H文举 发表于 2015-3-30 21:32
请问test是起什么作用的

test.php 调用的是登录接口

4

主题

14

帖子

145

积分

注册会员

Rank: 2

积分
145
地板
发表于 2015-4-3 17:16:29 | 只看该作者
请问如果要向服务器get数据该怎么**作呢,能提供一下例程吗(比如获取设备最近上传数据点 [GET]),谢谢

5

主题

13

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
5#
 楼主| 发表于 2015-4-3 17:51:54 | 只看该作者
注册成为机智云开发者,手机加虚拟设备快速开发
H文举 发表于 2015-4-3 17:16
请问如果要向服务器get数据该怎么**作呢,能提供一下例程吗(比如获取设备最近上传数据点 [GET]),谢谢 ...
  1. <?php
  2.         class Gokit_Http
  3.         {
  4.                 public static $ch = null;
  5.                 public static $url_prefix = 'http://api.gizwits.com/';
  6.                 // public static $url_prefix = 'http://gokit_test.com/';

  7.                 public static $appid = '';
  8.                 public static $token = '';

  9.                 public static $headerArr = [];

  10.                 // 初始化curl
  11.                 public static function init()
  12.                 {
  13.                         if (!self::$ch) {
  14.                                 self::$ch = curl_init();
  15.                         }
  16.                         global $appid,$token;
  17.                         self::$headerArr[] = 'Content-Type: application/json';
  18.                         if ($appid) {
  19.                                 self::$headerArr[] = "X-Gizwits-Application-Id: ".$appid;
  20.                         }
  21.                         if ($token) {
  22.                                 self::$headerArr[] = "X-Gizwits-User-token: ".$token;
  23.                         }
  24.                 }

  25.                 // post 请求
  26.                 public static function post($uri, $data)
  27.                 {
  28.                         self::init();
  29.                         // 传输的json数据
  30.                         $data = json_encode($data);
  31.                         // curl 设置
  32.                         curl_setopt(self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
  33.                         curl_setopt(self::$ch, CURLOPT_POST, 1 );
  34.                         curl_setopt(self::$ch, CURLOPT_HEADER, 0 );
  35.                         curl_setopt(self::$ch, CURLOPT_HTTPHEADER , self::$headerArr );  //构造IP
  36.                         curl_setopt(self::$ch, CURLOPT_BINARYTRANSFER, true);
  37.                         curl_setopt(self::$ch, CURLOPT_RETURNTRANSFER, 1 );
  38.                         curl_setopt(self::$ch, CURLOPT_POSTFIELDS, $data);
  39.                         $r = curl_exec(self::$ch);
  40.                         curl_close(self::$ch);
  41.                         self::$ch = null;
  42.                         // 处理结果
  43.                         // test
  44.                         return $r;
  45.                         return self::response($r);
  46.                 }

  47.                 // get 请求
  48.                 public static function get($uri)
  49.                 {
  50.                         self::init();
  51.                         // curl 设置
  52.                         curl_setopt(self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
  53.                         curl_setopt(self::$ch, CURLOPT_HTTPHEADER , self::$headerArr );  //构造IP
  54.                         curl_setopt(self::$ch, CURLOPT_BINARYTRANSFER, true);
  55.                         curl_setopt(self::$ch, CURLOPT_RETURNTRANSFER, 1 );
  56.                         curl_setopt(self::$ch, CURLOPT_HEADER, 0 );
  57.                         $r = curl_exec ( self::$ch );
  58.                         curl_close ( self::$ch );
  59.                         self::$ch = null;
  60.                         // 处理结果
  61.                         return self::response($r);
  62.                 }

  63.                 // get 请求
  64.                 public static function delete($uri, $data = [])
  65.                 {
  66.                         self::init();
  67.                         // curl 设置
  68.                         curl_setopt(self::$ch, CURLOPT_URL, self::$url_prefix.$uri );
  69.                         $data = json_encode($data);
  70.                         curl_setopt(self::$ch, CURLOPT_POSTFIELDS, $data);
  71.                         curl_setopt(self::$ch, CURLOPT_HTTPHEADER , self::$headerArr );  //构造IP
  72.                         curl_setopt(self::$ch, CURLOPT_BINARYTRANSFER, true);
  73.                         curl_setopt(self::$ch, CURLOPT_RETURNTRANSFER, 1 );
  74.                         curl_setopt(self::$ch, CURLOPT_HEADER, 0 );
  75.                         curl_setopt(self::$ch, CURLOPT_CUSTOMREQUEST, "DELETE");
  76.                         $r = curl_exec ( self::$ch );
  77.                         curl_close ( self::$ch );
  78.                         self::$ch = null;
  79.                         // 处理结果
  80.                         return self::response($r);
  81.                 }

  82.                 // 处理输出
  83.                 public static function response($r)
  84.                 {
  85.                         if ($r) {
  86.                                 $r = json_decode($r, true);
  87.                                 if ($r) {
  88.                                         return $r;
  89.                                 }
  90.                         }
  91.                         return '请求失败:'.var_export($r, true);
  92.                 }
  93.         }
  94. ?>
复制代码

5

主题

13

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
6#
 楼主| 发表于 2015-4-3 17:53:21 | 只看该作者
H文举 发表于 2015-4-3 17:16
请问如果要向服务器get数据该怎么**作呢,能提供一下例程吗(比如获取设备最近上传数据点 [GET]),谢谢 ...

我是写的Gokit_Http类,希望对你有用

4

主题

14

帖子

145

积分

注册会员

Rank: 2

积分
145
7#
发表于 2015-4-3 20:42:38 | 只看该作者
好的,非常感谢

4

主题

56

帖子

185

积分

注册会员

Rank: 2

积分
185
8#
发表于 2015-4-7 13:02:54 | 只看该作者
谢谢分享学习一下

9

主题

66

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
9#
发表于 2015-6-11 09:41:48 | 只看该作者
谢谢分享,感谢楼主。

9

主题

66

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
10#
发表于 2015-6-21 09:15:53 | 只看该作者
免费使用STM32、APP自动代码生成工具
楼主虚拟设备上面搞这个,网页调用,发现连不上啊,手机上APP用手机号码登录是可以的呢。

array(3) { ["error_message"]=> string(20) "user does not exist!" ["error_code"]=> int(9005) ["detail_message"]=> NULL }

我用手机号码登录的啊。

5

主题

13

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
11#
 楼主| 发表于 2015-6-23 11:19:06 | 只看该作者
johnvuong1999 发表于 2015-6-21 09:15
楼主虚拟设备上面搞这个,网页调用,发现连不上啊,手机上APP用手机号码登录是可以的呢。

array(3) { ["er ...

提示是用户不存在,需要先调用注册接口进行注册

0

主题

15

帖子

197

积分

注册会员

Rank: 2

积分
197
12#
发表于 2019-5-23 20:12:00 | 只看该作者
想弱弱的问一下这个用户名和密码是机智云的吗?入门蒙
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表