123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- <?php
- /**
- * ApiClient
- *
- * PHP version 5
- *
- * @category Services
- * @package Authy
- * @author David Cuadrado <[email protected]>
- * @license http://creativecommons.org/licenses/MIT/ MIT
- * @link http://authy.github.com/pear
- */
- /**
- * Authy API interface.
- *
- * @category Services
- * @package Authy
- * @author David Cuadrado <[email protected]>
- * @license http://creativecommons.org/licenses/MIT/ MIT
- * @link http://authy.github.com/pear
- */
- class Authy_Api
- {
- const VERSION = '1.3.0';
- protected $rest;
- protected $api_key;
- protected $api_url;
- /**
- * Constructor.
- *
- * @param string $api_key Api Key
- * @param string $api_url Optional api url
- */
- public function __construct($api_key, $api_url = "https://api.authy.com")
- {
- $this->rest = new Resty();
- $this->rest->setBaseURL($api_url);
- $this->rest->setUserAgent("authy-php v".Authy_Api::VERSION);
- $this->api_key = $api_key;
- $this->api_url = $api_url;
- }
- /**
- * Register a user.
- *
- * @param string $email New user's email
- * @param string $cellphone New user's cellphone
- * @param string $country_code New user's country code. defaults to USA(1)
- *
- * @return Authy_User the new registered user
- */
- public function registerUser($email, $cellphone, $country_code = 1)
- {
- $params = $this->defaultParams();
- $params['user'] = array(
- "email" => $email,
- "country_code" => $country_code,
- "cellphone" => $cellphone
- );
- $resp = $this->rest->post('/protected/json/users/new', $params);
- return new Authy_User($resp);
- }
- /**
- * Verify a given token.
- *
- * @param string $authy_id User's id stored in your database
- * @param string $token The token entered by the user
- * @param string $opts Array of options, for example:
- * array("force" => "true")
- *
- * @return Authy_Response the server response
- */
- public function verifyToken($authy_id, $token, $opts = array())
- {
- $params = array_merge($this->defaultParams(), $opts);
- if (!array_key_exists("force", $params)) {
- $params["force"] = "true";
- }
- $url = '/protected/json/verify/'. urlencode($token)
- .'/'. urlencode($authy_id);
- $resp = $this->rest->get($url, $params);
- return new Authy_Response($resp);
- }
- /**
- * Request a valid token via SMS.
- *
- * @param string $authy_id User's id stored in your database
- * @param string $opts Array of options, for example:
- * array("force" => "true")
- *
- * @return Authy_Response the server response
- */
- public function requestSms($authy_id, $opts = array())
- {
- $params = array_merge($this->defaultParams(), $opts);
- $url = '/protected/json/sms/'.urlencode($authy_id);
- $resp = $this->rest->get($url, $params);
- return new Authy_Response($resp);
- }
-
- /**
- * Cellphone call, usually used with SMS Token issues or if no smartphone is available.
- * This function needs the app to be on Starter Plan (free) or higher.
- *
- * @param string $authy_id User's id stored in your database
- * @param string $opts Array of options, for example:
- * array("force" => "true")
- *
- * @return Authy_Response the server response
- */
- public function phoneCall($authy_id, $opts = array())
- {
- $params = array_merge($this->defaultParams(), $opts);
- $url = '/protected/json/call/'.urlencode($authy_id);
- $resp = $this->rest->get($url, $params);
- return new Authy_Response($resp);
- }
-
- /**
- * Deletes an user.
- *
- * @param string $authy_id User's id stored in your database
- *
- * @return Authy_Response the server response
- */
- public function deleteUser($authy_id)
- {
- $params = array_merge($this->defaultParams());
- $url = '/protected/json/users/delete/'.urlencode($authy_id);
- $resp = $this->rest->post($url, $params);
- return new Authy_Response($resp);
- }
- /**
- * Return the default parameters.
- *
- * @return array array with the default parameters
- */
- protected function defaultParams()
- {
- return array("api_key" => $this->api_key);
- }
- };
|