Path: blob/master/src/applications/auth/adapter/PhutilTwitterAuthAdapter.php
12256 views
<?php12/**3* Authentication adapter for Twitter OAuth1.4*/5final class PhutilTwitterAuthAdapter extends PhutilOAuth1AuthAdapter {67private $userInfo;89public function getAccountID() {10return idx($this->getHandshakeData(), 'user_id');11}1213public function getAccountName() {14return idx($this->getHandshakeData(), 'screen_name');15}1617public function getAccountURI() {18$name = $this->getAccountName();19if (strlen($name)) {20return 'https://twitter.com/'.$name;21}22return null;23}2425public function getAccountImageURI() {26$info = $this->getUserInfo();27return idx($info, 'profile_image_url');28}2930public function getAccountRealName() {31$info = $this->getUserInfo();32return idx($info, 'name');33}3435public function getAdapterType() {36return 'twitter';37}3839public function getAdapterDomain() {40return 'twitter.com';41}4243protected function getRequestTokenURI() {44return 'https://api.twitter.com/oauth/request_token';45}4647protected function getAuthorizeTokenURI() {48return 'https://api.twitter.com/oauth/authorize';49}5051protected function getValidateTokenURI() {52return 'https://api.twitter.com/oauth/access_token';53}5455private function getUserInfo() {56if ($this->userInfo === null) {57$params = array(58'user_id' => $this->getAccountID(),59);6061$uri = new PhutilURI(62'https://api.twitter.com/1.1/users/show.json',63$params);6465$data = $this->newOAuth1Future($uri)66->setMethod('GET')67->resolveJSON();6869$this->userInfo = $data;70}71return $this->userInfo;72}7374}757677