最近用 thinkphp 写个东西,用了这个类库,发现版本很老了。thinkphp 3.2 最新版无法使用。
最后发现是命名空间的问题,只需对照下面修改下即可使用。
ThinkOauth.class.php顶部
namespace Org\ThinkSDK;
abstract class ThinkOauth{
. . . . .
}
ThinkOauth.class.php 批量替换 throw new Exception 替换为 E 即可。
use Org\ThinkSDK\ThinkOauth; //这里只是拿QQ做个示范,你要用哪个接口就要改哪个文件。 最好是批量都加上
class QqSDK extends ThinkOauth{
. . . . . .
}
使用demo
namespace Home\Controller;
use Org\ThinkSDK\ThinkOauth;
class IndexController extends CommonController
{
public function login($type = null)
{
empty($type) && $this->error(‘参数错误’);
$sns = ThinkOauth::getInstance($type);
redirect($sns->getRequestCodeURL());
}
//授权回调地址
public function callback($type = null, $code = null)
{
(empty($type) || empty($code)) && $this->error(‘参数错误’);
$sns = ThinkOauth::getInstance($type);
//腾讯微博需传递的额外参数
$extend = null;
if ($type == ‘tencent’) {
$extend = array(‘openid’ => $this->_get(‘openid’), ‘openkey’ => $this->_get(‘openkey’));
}
$token = $sns->getAccessToken($code, $extend);
//自己写 . . . . . .
}