socialauther's People
Forkers
evrikaru orbisnull-box semteacher mervick maasik fresh-d-net buzzer13 gwer ne0h12 psarts sailex dadesign ildaroit pokabudki nertus dragonmu romanitalian volcanolog uorypm webru maxrostov evgenlesnoy bagunda marinesku13 wapom ibadin nevmmv ivvitikhonov 72nomer maxmokry sunsingerus mmkulikov bytetobyte wildboardm mihdan kostap mtnats mhwh-dev lastdomovoisocialauther's Issues
Урл устаревший и по нему уже апи не работает
Проблема с autoload
Если подключать в начале файла, то остальные автозагрузчики пытаются подключать файлы из директории SocialAuther, в следствие чего вылезает Fatal Error
Fatal error: require_once(): Failed opening required 'bbPress.php' in /var/www/html/lib/SocialAuther/autoload.php on line 7
Мне было некогда переписывать autoload, поэтому сделал include_once вместо require_once и выставил error_reporting E_NOTICE. Но было бы замечательно это дело поправить грамотным способом))
Неплохо было бы еще добавить авторизацию через Twitter
Не работает авторизация через Facebook
Метод $auther->authenticate() возвращает false,
Сам Facebook возвращает следующее (значение с $tokenInfo):
["{"error":{"message":"This_authorization_code_has_expired_","type":"OAuthException","code":100,"fbtrace_id":"C8Lkq2QuMPv"}}"]
new VK Adapter
<?php
namespace SocialAuther\Adapter;
class Vk extends AbstractAdapter
{
public function __construct($config)
{
parent::__construct($config);
$this->socialFieldsMap = array(
'socialId' => 'id',
'email' => 'email',
'avatar' => 'photo_big',
'birthday' => 'bdate'
);
$this->provider = 'vk';
}
/**
* Get user name or null if it is not set
*
* @return string|null
*/
public function getName()
{
$result = null;
if (isset($this->userInfo['first_name']) && isset($this->userInfo['last_name'])) {
$result = $this->userInfo['first_name'] . ' ' . $this->userInfo['last_name'];
} elseif (isset($this->userInfo['first_name']) && !isset($this->userInfo['last_name'])) {
$result = $this->userInfo['first_name'];
} elseif (!isset($this->userInfo['first_name']) && isset($this->userInfo['last_name'])) {
$result = $this->userInfo['last_name'];
}
return $result;
}
/**
* Get user social id or null if it is not set
*
* @return string|null
*/
public function getSocialPage()
{
$result = null;
if (isset($this->userInfo['screen_name'])) {
$result = 'http://vk.com/' . $this->userInfo['screen_name'];
}
return $result;
}
/**
* Get user sex or null if it is not set
*
* @return string|null
*/
public function getSex()
{
$result = null;
if (isset($this->userInfo['sex'])) {
$result = $this->userInfo['sex'] == 1 ? 'female' : 'male';
}
return $result;
}
/**
* Authenticate and return bool result of authentication
*
* @return bool
*/
public function authenticate()
{
$result = false;
if (isset($_GET['code'])) {
$params = array(
'client_id' => $this->clientId,
'client_secret' => $this->clientSecret,
'code' => $_GET['code'],
'redirect_uri' => $this->redirectUri
);
$tokenInfo = $this->get('https://oauth.vk.com/access_token', $params);
if (isset($tokenInfo['access_token'])) {
$params = array(
'user_ids' => $tokenInfo['user_id'],
'v' => '5.80',
'fields' => 'uid,first_name,last_name,screen_name,sex,bdate,photo_big',
'access_token' => $tokenInfo['access_token']
);
$userInfo = $this->get('https://api.vk.com/method/users.get', $params);
if (isset($userInfo['response'][0]['id'])) {
$this->userInfo = $userInfo['response'][0];
$result = true;
}
}
}
return $result;
}
/**
* Prepare params for authentication url
*
* @return array
*/
public function prepareAuthParams()
{
return array(
'auth_url' => 'http://oauth.vk.com/authorize',
'auth_params' => array(
'client_id' => $this->clientId,
'scope' => 'notify',
'redirect_uri' => $this->redirectUri,
'response_type' => 'code',
'v' => '5.80',
)
);
}
}
Добавьте авторизацию через GitHub
Неплохо было бы еще добавить авторизацию через GitHub
VK.com
В новой версии необходимо обязательно указывать версию используемого API, параметр 'v'
Также изменилось название параметра, хранящего ID пользователя с 'uid' на 'id'
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.