Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
<?php
require_once NSL_PATH . '/includes/oauth2.php';

class NextendSocialProviderLineClient extends NextendSocialOauth2 {

    protected $access_token_data = array(
        'access_token' => '',
        'expires_in'   => -1,
        'created'      => -1
    );

    private $prompt = '';
    private $bot_prompt = '';
    private $initial_amr_display = '';
    private $switch_amr = '';

    protected $endpointAuthorization = 'https://access.line.me/oauth2/v2.1/authorize';

    protected $endpointAccessToken = 'https://api.line.me/oauth2/v2.1/token';

    protected $endpointRestAPI = 'https://api.line.me/v2';

    protected $defaultRestParams = array(
        'format' => 'json',
    );

    protected $scopes = array(
        'profile',
        'openid',
        'email'
    );

    public function createAuthUrl() {
        $args = array();

        if ($this->prompt != '') {
            $args['prompt'] = urlencode($this->prompt);
        }
        if ($this->bot_prompt != '') {
            $args['bot_prompt'] = urlencode($this->bot_prompt);
        }

        if ($this->initial_amr_display !== '') {
            $args['initial_amr_display'] = $this->initial_amr_display;
        }

        if ($this->switch_amr != '') {
            $args['switch_amr'] = $this->switch_amr;
        }

        return add_query_arg($args, parent::createAuthUrl());
    }

    /**
     * @param string $prompt
     */
    public function setPrompt($prompt) {
        $this->prompt = $prompt;
    }

    /**
     * @param string $bot_prompt
     */
    public function setBotPrompt($bot_prompt) {
        $this->bot_prompt = $bot_prompt;
    }

    /**
     * @param string $initial_amr_display
     */
    public function setInitialLoginMethod($initial_amr_display) {
        $this->initial_amr_display = $initial_amr_display;
    }

    /**
     * @param string $switch_amr
     */
    public function setForceInitialLoginMethod($switch_amr) {
        $this->switch_amr = $switch_amr;
    }

    public function getLineIdToken() {
        if (isset($this->access_token_data['id_token']) && !empty($this->access_token_data['id_token'])) {
            return $this->access_token_data['id_token'];
        }

        return false;
    }
}