使用Strava API的Yii2 authclient

时间:2015-02-21 10:10:35

标签: php oauth-2.0 yii2

我已经配置了yii2-authclient成功使用Facebook和Google - 无论是连接还是登录。我现在想对Strava做同样的事情,但我真的不知道该怎么做。

我已将Strave配置添加到config/web.php,现在我的登录页面上有一个按钮。我点击此按钮,在弹出窗口中输入我的Strava凭据,重定向到我的网站,其中我提供了例外:yii\authclient\InvalidResponseException。返回的消息是:

Request failed with code: 404, message: <!DOCTYPE html>
<html class='logged-out responsive old-login' lang='en-US' xmlns:fb='http://www.facebook.com/2008/fbml' xmlns:og='http://opengraphprotocol.org/schema/' xmlns='http://www.w3.org/TR/html5'>
......
</html>

异常消息中的HTML内容与https://www.strava.com/token的内容相同,只是他们的&#34;您正在寻找的页面不存在。&#34;。

任何帮助都将不胜感激。

这是我的班级:

class Strava extends OAuth2{
    public $authUrl = 'https://www.strava.com/oauth/authorize';
    public $tokenUrl = 'https://www.strava.com/oauth/token';
    public $apiBaseUrl = 'https://www.strava.com/api';
    public $scope = 'write';

    protected function initUserAttributes(){
        return $this->api('me', 'GET');
    }

    protected function defaultName(){
        return 'strava';
    }

    protected function defaultTitle(){
        return 'Strava';
    }
}

这是我的配置:

'authClientCollection' => [
    'class' => 'yii\authclient\Collection',
    'clients' => [
        'google' => [
            'class' => 'yii\authclient\clients\GoogleOAuth',
            'clientId' => 'MY_ID',
            'clientSecret' => 'MY_SECRET',
        ],
        'facebook' => [
            'class' => 'yii\authclient\clients\Facebook',
            'authUrl' => 'https://www.facebook.com/dialog/oauth?display=popup',
            'clientId' => 'MY_ID',
            'clientSecret' => 'MY_SECRET',
        ],
        'strava' => [
            'class' => 'my\namespace\Strava',
            'clientId' => 'MY_ID',
            'clientSecret' => 'MY_SECRET',
        ],
    ],

0 个答案:

没有答案