123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- require_once(dirname(__FILE__) . '/' . 'utils/GTHttpManager.php');
- require_once(dirname(__FILE__) . '/' . 'utils/GTConfig.php');
- require_once(dirname(__FILE__) . '/' . 'request/user/GTAliasRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/auth/GTAuthRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/user/GTTagSetRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/user/GTBadgeSetRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/user/GTUserQueryRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTPushRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTPushBatchRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTAudienceRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTSettings.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTStrategy.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTNotification.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTRevoke.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTPushChannel.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/ios/GTIos.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/ios/GTAps.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/ios/GTAlert.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/ios/GTMultimedia.php');
- require_once(dirname(__FILE__) . '/' . 'request/GTApiRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/android/GTAndroid.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/android/GTUps.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/android/GTThirdNotification.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTCondition.php');
- require_once(dirname(__FILE__) . '/' . 'request/user/GTUserQueryRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTPushRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTPushBatchRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTAudienceRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/user/GTTagBatchSetRequest.php');
- require_once(dirname(__FILE__) . '/' . 'request/push/GTCondition.php');
- require_once(dirname(__FILE__) . '/' . 'GTPushApi.php');
- require_once(dirname(__FILE__) . '/' . 'GTStatisticsApi.php');
- require_once(dirname(__FILE__) . '/' . 'GTPushApi.php');
- require_once(dirname(__FILE__) . '/' . 'GTUserApi.php');
- /**
- * 个推客户端,用于进行推送、用户设置、报表查询等操作
- * 每new一个GTclient对象,会进行一次鉴权,建议用户保存GTclient对象重复使用。
- **/
- class GTClient
- {
- //第三方 标识
- private $appkey;
- //第三方 密钥
- private $masterSecret;
- //鉴权token
- private $authToken;
- //第三方 appid
- private $appId;
- //是否使用https连接 以该标志为准
- private $useSSL = null;
- //用户配置或者内置域名列表
- private $domainUrlList = null;
- //是否指定域名。如果指定,使用过程中域名不会发生变化
- private $isAssigned = false;
- //推送api
- private $pushApi = null;
- //报表api
- private $statisticsApi = null;
- //用户api
- private $userApi = null;
- public function __construct($domainUrl, $appkey, $appId, $masterSecret, $ssl = NULL)
- {
- $this->appkey = $appkey;
- $this->masterSecret = $masterSecret;
- $this->appId = $appId;
- $this->pushApi = new GTPushApi($this);
- $this->statisticsApi = new GTStatisticsApi($this);
- $this->userApi = new GTUserApi($this);
- $domainUrl = trim($domainUrl);
- if ($ssl == NULL && $domainUrl != NULL && strpos(strtolower($domainUrl), "https:") === 0) {
- $ssl = true;
- }
- $this->useSSL = ($ssl == NULL ? false : $ssl);
- if ($domainUrl == NULL || strlen($domainUrl) == 0) {
- $this->domainUrlList = GTConfig::getDefaultDomainUrl($this->useSSL);
- } else {
- if (GTConfig::isNeedOSAsigned()) {
- $this->isAssigned = true;
- }
- $this->domainUrlList = array($domainUrl);
- }
- //鉴权
- try {
- $this->auth();
- } catch (Exception $e) {
- echo $e->getMessage();
- }
- }
- public function getAuthToken()
- {
- return $this->authToken;
- }
- public function setAuthToken($authToken)
- {
- $this->authToken = $authToken;
- }
- public function pushApi()
- {
- return $this->pushApi;
- }
- public function statisticsApi()
- {
- return $this->statisticsApi;
- }
- public function userApi()
- {
- return $this->userApi;
- }
- public function getHost()
- {
- return $this->domainUrlList[0];
- }
- public function setDomainUrlList($domainUrlList)
- {
- $this->domainUrlList = $domainUrlList;
- }
- public function getAppId()
- {
- return $this->appId;
- }
- public function auth()
- {
- $auth = new GTAuthRequest();
- $auth->setAppkey($this->appkey);
- $timeStamp = $this->getMicroTime();
- $sign = hash("sha256", $this->appkey . $timeStamp . $this->masterSecret);
- $auth->setSign($sign);
- $auth->setTimestamp($timeStamp);
- $rep = $this->userApi()->auth($auth);
- if ($rep["code"] == 0) {
- $this->authToken = $rep["data"]["token"];
- return true;
- }
- return false;
- }
- function getMicroTime()
- {
- list($usec, $sec) = explode(" ", microtime());
- $time = ($sec . substr($usec, 2, 3));
- return $time;
- }
- }
|