我已经配置了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',
],
],